我有一个如下所示的数据框:
print(df)
city Year ville Asset_Type Titre psqm
0 Agadir 2010.0 Agadir Appart 3225 6276.923077
1 Agadir 2010.0 Agadir Maison_Dar 37 8571.428571
2 Agadir 2010.0 Agadir Villa 107 6279.469027
3 Agadir 2011.0 Agadir Appart 2931 6516.853933
4 Agadir 2011.0 Agadir Maison_Dar 33 9000.000000
... ... ... ... ... ... ...
669 Tanger 2020.0 Tanger Maison_Dar 134 13382.653061
670 Tanger 2021.0 BeniMakada Appart 67 5555.555556
671 Tanger 2021.0 BeniMakada Maison_Dar 4 14533.492823
672 Tanger 2021.0 Tanger Appart 160 6148.338940
673 Tanger 2021.0 Tanger Maison_Dar 12 13461.538462
将数据框保存到 Excel 工作表中非常简单
df.to_excel(path_to_output+'df.xlsx')
我想将每个城市的输出(city
列)保存在同一 Excel 文件的不同工作表中。请问我该怎么做?我不确定是否需要提前手动创建工作表,然后循环每个工作表或动态创建它们(通过 python)?
感谢您的帮助
最佳答案
这是一种与 @kaispace30098 做同样事情的更 Pandas 式的方式,但应该更快,因为我们不会迭代每个组。
首先是代码,然后是解释
with pd.ExcelWriter('one_df.xlsx') as writer:
df.groupby('city').apply(
lambda group: group.to_excel(writer, sheet_name=group.name)
)
- 我们使用
with...as...
语法创建一个编写器,因为它会在完成后自动关闭文件。否则您稍后必须手动执行此操作。 - 由于您想按城市对每个工作表进行分组,因此我们使用
.groupby('city')
- 然后,我们使用
.apply()
将函数应用于每个组,其中我们将每个组转换为 Excel 写入,并使用组名称(即城市名称)进行写入。
关于python - 将数据框的每个切片保存到特定的 Excel 工作表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74945130/