【发布时间】:2022-08-17 16:27:44
【问题描述】:
我有三个不同的数据框,它们都包含具有特定 ID 的列。
DF_1
DF_2
DF_3
我想要实现的是创建一个以 ID 为名称的 Excel 工作表,数据框为每个唯一值的工作表 \'DF_1, DF_2, DF_3\'。所以 \'1.xlsx\' 应该包含三张表(数据框),其中只有与该 ID 相关联的记录。我遇到的问题是要么获取多张纸,要么只获取每个唯一值的对应值。
for name, r in df_1.groupby(\"ID\"):
r.groupby(\"ID\").to_excel(f\'{name}.xlsx\', index=False)
这段代码为我提供了正确的输出,但仅适用于 df_1。我得到 5 个 Excel 文件,每个 ID 都有相应的行,但只有一张,即 df_1。我不知道如何在每个 ID 中包含 df_2 和 df_3。当我尝试将以下代码与嵌套循环一起使用时,我得到所有行而不是每个唯一值:
writer = pd.ExcelWriter(f\'{name}.xlsx\')
r.to_excel(writer, sheet_name=f\'{name}_df1\')
r.to_excel(writer, sheet_name=f\'{name}_df2\')
r.to_excel(writer, sheet_name=f\'{name}_df3\')
writer.save()
在这部分之前还有更多的数据转换,最终的数据帧是最终需要的一次。坦率地说,我不知道如何解决这个问题或如何实现这一点。希望有人有一些有见地的cmets。