我有两个数据帧两者都有Months列
我想通过df1 Months 导出到excel(创建excel文件(
dint_month = df1['month'].unique()
outputfile = pd.ExcelWriter(str(value)+'.xlsx', engine='xlsxwriter')
for value in dint_month:
month1 = df1[df1['month']== value]
month1.to_excel(outputfile, sheet_name='Course', index=False)
outputfile.save()
这将创建文件并将数据导出到我想要的文件中现在我有了一个DF2,其中有每月专栏和每周更新所以我想把每周的信息添加到我从DF1 导出的当月excel文件中的单独工作表中
我又尝试了一个for循环,但它将所有周导出到所有文件。请你提出建议,我该如何做到这一点。
给定一个数据帧df2
,它将同时引用您的月度数据和每周数据。一种选择是如下进行:
dint_month = df1['month'].unique()
for value in dint_month:
outputfile = pd.ExcelWriter(str(value) + '.xlsx', engine='xlsxwriter')
month = df1[df1['month'] == value]
week_data = df2[df2['month'] == value]
month.to_excel(outputfile, sheet_name='course', index=False)
week_data.to_excel(outputfile, sheet_name='course_weeks', index=False)
outputfile.save()
请注意,有几件事正在发生:
首先,输出文件创建行在循环中移动,因为它依赖于value
变量。
outputfile = pd.ExcelWriter(str(value) + '.xlsx', engine='xlsxwriter')
然后,我们在与您的第一个数据帧相同的month
列上过滤周数据。(考虑到它在那里(。
week_data = df2[df2['month'] == value]
最后,我们通过更改同一输出文件上的工作表名称,将该数据输出到另一个工作表。
week_data.to_excel(outputfile, sheet_name='course_weeks', index=False)
这种设置适用于DF2
还有一个月列的场景。如果不是这样,您还必须在第二个数据帧中添加一个月列,或者将df2[df2['month'] == value]
中的month
重命名为实际的列名。