如何将Pandas DataFrame中每日数据拆分至单独Excel文件?
按日期拆分DataFrame并导出为独立Excel文件
我有如下DataFrame:
Date Price Quantity 12/9/2019 21.47 12 12/9/2019 10.65 12 12/9/2019 11.53 18 12/8/2019 6.19 11 12/8/2019 6.04 3 12/8/2019 6.19 2 12/7/2019 6.04 1 12/7/2019 6.04 7 12/7/2019 6.04 1 12/6/2019 6.19 1 12/6/2019 6.19 1 12/6/2019 6.19 2希望为每一天创建一个仅包含当日数据的Excel文件,比如一个文件只存9日的数据,另一个存8日的数据,以此类推。尝试过使用for循环,但不知道如何拆分日期,求最优实现方案。
最优实现方案
使用pandas的groupby方法可以高效完成按日期拆分并导出的需求,步骤如下:
1. 导入依赖并准备DataFrame
import pandas as pd # 构造示例DataFrame(如果已有数据可跳过此步) data = { 'Date': ['12/9/2019', '12/9/2019', '12/9/2019', '12/8/2019', '12/8/2019', '12/8/2019', '12/7/2019', '12/7/2019', '12/7/2019', '12/6/2019', '12/6/2019', '12/6/2019'], 'Price': [21.47, 10.65, 11.53, 6.19, 6.04, 6.19, 6.04, 6.04, 6.04, 6.19, 6.19, 6.19], 'Quantity': [12, 12, 18, 11, 3, 2, 1, 7, 1, 1, 1, 2] } df = pd.DataFrame(data)
2. 转换日期列格式(关键步骤)
将原始字符串格式的Date列转为日期类型,避免因字符串格式差异导致分组错误:
df['Date'] = pd.to_datetime(df['Date'])
3. 按日期分组并导出Excel
# 遍历每个日期分组 for date, group in df.groupby('Date'): # 生成合法文件名(避免斜杠等非法字符) filename = f"当日数据_{date.strftime('%Y-%m-%d')}.xlsx" # 导出分组数据到Excel,不保留索引列 group.to_excel(filename, index=False)
方案说明
groupby('Date')会自动将相同日期的行聚合为子DataFrame,无需手动判断日期拆分逻辑strftime('%Y-%m-%d')将日期转为YYYY-MM-DD格式,确保文件名合法且易识别index=False参数避免将DataFrame的索引写入Excel,让输出文件更整洁
内容的提问来源于stack exchange,提问作者griefter
相关产品推荐
相关产品推荐

