我正在尝试根据日期将我的数据集导出到多个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
发布于 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
发布于 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
https://stackoverflow.com/questions/55248479
复制相似问题