首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据日期将数据导出到多个excel文件

根据日期将数据导出到多个excel文件
EN

Stack Overflow用户
提问于 2019-03-20 03:13:40
回答 2查看 356关注 0票数 1

我正在尝试根据日期将我的数据集导出到多个excel文件。

这是我的桌子

datestart
+----------+
2019-03-14
2019-03-14
2019-03-12
2019-03-11
2019-03-08
2019-03-07
2019-03-06
2019-03-05
2019-03-04
2019-03-01

对于每个日期,我都要创建一个新文件。

datestart   | filename
+-----------+-------------+
2019-03-14  | file_031419
2019-03-14  | file_031419
2019-03-12  | file_031219
2019-03-12  | file_031219
2019-03-08  | file_030819
2019-03-08  | file_030819
2019-03-06  | file_030619
2019-03-06  | file_030619
2019-03-06  | file_030619
2019-03-01  | file_030119

日期存储为datetime。我不想硬编码日期。我希望脚本查找具有相同日期的列,将它们组合在一起,并导出到文件名中包含日期的文件。

该脚本应导出为5个文件。每个文件将只包含具有特定日期的数据。

例如,file_031419将只有日期为031419的数据,file_031219将只有031219数据,依此类推。

file_031419 file_031219 file_030819 file_030619 file_030119

EN

回答 2

Stack Overflow用户

发布于 2019-03-20 03:19:40

您可以使用list(set())获取唯一日期列表,使用Pandas和df.loc[]根据日期设置数据子集,使用pd.to_datetime()将日期转换为所需的文件名格式,然后使用df.to_excel()将数据集另存为Excel文件:

import pandas as pd

df = pd.Series('''2019-03-14
2019-03-14
2019-03-12
2019-03-12
2019-03-08
2019-03-08
2019-03-06
2019-03-06
2019-03-06
2019-03-01'''.split('\n'), name='datestart', dtype=str).to_frame()

df['data'] = np.random.rand(len(df))

# Get unique dates
dates = list(set(df.datestart.values))

for date in dates:
    idx = df.datestart == date # Filter by unique date
    filename = 'file_'+list(set(pd.to_datetime(df.loc[idx, 'datestart']).dt.strftime('%m%d%y')))[0]+'.xlsx'
    df.loc[idx, 'data'].to_excel(filename) # Save subset of data frame as excel file
票数 1
EN

Stack Overflow用户

发布于 2019-03-20 03:19:06

您可以使用一些字符串方法和字符串格式。

dates = [‘2019-03-01’, ‘2019-05-06’]
for date in dates:
    split_date = date.split(‘-‘)
    fname = ‘file_{}{}{}’.format(split_date[0],split_date[2],split_date[1]
    # save to .csv with fname
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55248479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档