Py学习  »  Python

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

程序员专栏 • 3 年前 • 1056 次点击  
👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇






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 FTPimport 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 pyodbcimport osimport 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-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!


点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/153069