专栏首页浊酒清味当Excel不够用的时候如何用Python救场?

当Excel不够用的时候如何用Python救场?

Excel是很多公司非常流行的工具,数据分析师和数据科学家经常发现他们把它作为数据分析和可视化工具的一部分,但这并不总是最好的选择。

尤其是在数据量很大的时候,Excel容易让我们无法使用其他应用程序,而且有些报告需要30分钟甚至几个小时才能完成刷新。是的,Excel喜欢把我们的电脑当人质!

显然需要做点什么。我们在这些问题上浪费了太多的时间,几乎没有时间去做任何实际的分析或预测。幸运的是,Python及其操作CSV文件的工具可以帮助我们优化数据处理流程。下面给大家介绍常用的套路。

清理数据

使用Python中的pandas模块,您可以非常轻松和有效地操作和分析数据。毫无疑问,这是我拥有的最有价值的工具之一。下面是一些示例代码:

import pandas as pd

# 读CSV文件
file_name = 'file.csv'
df = pd.read_csv(file, low_memory=True)

# 过滤列
df = df.loc[df['Source Site'] == 'Amazon', :]

# 删除所有缺失值的行
df.dropna(inplace = True, how='all')

# 删除特定列丢失值的行
df.dropna(inplace= True, subset=['Source Site', 'Date'], how='any')

# 保存结果
df.to_csv(file_name, sep=',', encoding='utf-8', index=False)

从FTP服务器下载数据

使用Python中的ftplib模块,您可以连接到FTP服务器并将文件下载到计算机中。我几乎每天都使用这个模块,因为我们从外部接收CSV报告。下面是一些示例代码:

from ftplib import FTP
import os

# 收集保存为环境变量的凭据
host = os.environ['HOST']
port = int(os.environ['PORT'])
user = os.environ['USER']
pswd = os.environ['PASS']

# 建立FTP连接
ftp = FTP()
ftp.connect(host, port)
ftp.login(user, pswd)
ftp.cwd('/Download/') # 下载文件的目录

# 下载该文件
file_name = 'file_to_download.csv'
with open(file_name, 'wb') as local_file:
    ftp.retrbinary('RETR ' + file_name, local_file.write, 1024)
# 关闭FTP连接
ftp.quit()

运行SQL查询

使用Python中的pyodbc模块,您可以轻松地访问ODBC数据库。在我的例子中,我使用它连接到Netsuite并使用SQL查询提取数据。下面是一些示例代码:

import pyodbc
import os
import pandas as pd

# 设置凭证
user = os.environ['USER']
password = os.environ['PASS']
dsn = list(pyodbc.dataSources().keys())[0] 

# 建立连接
cnxn = pyodbc.connect('DSN={};UID={};PWD={}'.format(dsn, user, password))
# 执行查询并将结果保存到dataframe中
query = "SELECT * FROM ITEMS;"
df = pd.read_sql(query, cnxn)

刷新Excel

使用Python中的win32com模块,您可以打开Excel,加载工作簿,刷新所有数据连接,然后保存结果。具体做法如下:

import win32com.client

file = "excel_file.xslx"

# 启动一个Excel实例
xl = win32com.client.DispatchEx("Excel.Application")

# 打开Excel工作簿
wb = xl.workbooks.open(file)
xl.DisplayAlerts = False 
xl.Visible = True

# 刷新所有查询并关闭文件
wb.RefreshAll()
wb.Close(True) # 关闭并保存更新的工作簿
# 退出Excel实例并从内存中删除它
xl.Quit()

del xl

参考文章:阅读原文

·END·

本文分享自微信公众号 - Python与机器学习之路(gh_39aead19f756),作者:Huangwei AI

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python进阶之Pandas入门(三) 最重要的数据流操作

    Pandas是数据分析中一个至关重要的库,它是大多数据项目的支柱。如果你想从事数据分析相关的职业,那么你要做的第一件事情就是学习Pandas。

    HuangWeiAI
  • 图书恐惧症者的福音,Python官方文档使用指北

    很多时候我们并没有耐心去完整学习一本书,因为它耗费时间长,而且不容易牢固掌握知识。更多的情况是,我们想知道某一个函数或者功能的知识。就像是你写作文的时候想知道某...

    HuangWeiAI
  • Python快速入门(六)

    Python作为一个,目前最火的编程语言之一,已经渗透到了各行各业。它易学好懂,拥有着丰富的库,功能齐全。人生苦短,就用Python。

    HuangWeiAI
  • 如何更好的利用CDN资源

    随着互联网规模的爆炸式增长,CDN成长为重要的基础设施。如何更好的利用好CDN在全国丰富的资源点为用户提供更好的服务? 这篇文章介绍了CDN在动态内容和全站加速...

    余子军
  • 大型网站架构利器-CDN技术

    概念 CDN这个概念相信大家都比较耳熟,到底什么是CDN呢? CDN,全称为Content Delivery Network,即内容分发网络。 其基本思路是尽可...

    Java技术栈
  • 李伟坚(Excel催化剂):接入AI人工智能NLP自然语言处理

    原文在简书上发表,再同步到Excel催化剂微信公众号或其他平台上,文章后续有修改和更新将在简书上操作, 其他平台不作同步修改更新,因此建议阅读其他出处的文章时,...

    寒树Office与RPA
  • 2018-09-25 JAVA解析Excel工具easyexcel

    JAVA解析Excel工具easyexcel Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗...

    Albert陈凯
  • 中国 CDN 编年史

    CDN的全称是(Content Delivery Network),即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平...

    边缘计算
  • 推荐13个常用前端公共库CDN服务资源

    CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用。与将JS库存放在服务器单机上相比,CDN公共库更加稳定、高速。 公共CDN能为您的应用...

    小弟调调
  • 用Python处理Excel文件

    我主要尝试了四种工具,在此并不会给出他们的排名,因为在不同的应用场景下,做出的选择会不同。

    用户2398817

扫码关注云+社区

领取腾讯云代金券