基于日期将数据导出到多个excel文件

2024-04-20 13:23:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据日期将数据集导出到多个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个文件。每个文件只包含特定日期的数据。你知道吗

例如,文件\u 031419只包含日期为031419的数据,文件\u 031219只包含日期为031219的数据,等等。。你知道吗

文件号:031419 文件号:031219 文件号:030819 文件号:030619 文件号:030119


Tags: 文件数据脚本编码datetime文件名filenameexcel
2条回答

可以使用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

可以使用一些字符串方法和字符串格式。你知道吗

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

相关问题 更多 >