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与机器学习之路 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!