Pandas 输出到 Excel 时合并单元格
Pandas Merge cell when output to Excel
我有两个 table。 Table 1 按 week/day 和 Table 2 按周计算。当我合并 pandas 中的两个 table 并输出到 Excel 时,如何得到 Table 3 而不是 Table 4 的结果?重点是在 Excel 的同一周内仅显示 col2 的 1 个值,而不是每天都复制 col2 值。 table 实际上很大并且有更多的维度,所以我正在寻找一个可扩展的解决方案,而不是专门针对这个小的 table。我正在考虑 pandas 合并函数和工作表函数,但遇到了麻烦。谢谢!
Table 1
Table 2
Table 3
Table 4
d1 = {'week': [0, 0, 0, 1, 1, 1],
'day': [1, 2, 3, 1, 2, 3], 'col1': [30, 40, 20, 10, 20, 50]}
df1 = pd.DataFrame(data=d1)
d2 = {'week': [0, 1], "col2": [100, 200]}
df2 = pd.DataFrame(data=d2)
# Get table 4
dm = df1.merge(df2, how="right", on="week")
dm = dm.drop_duplicates(subset=['col2'], keep='last')
# Get table 3
desired = df1.merge(dm, how="left")
我有两个 table。 Table 1 按 week/day 和 Table 2 按周计算。当我合并 pandas 中的两个 table 并输出到 Excel 时,如何得到 Table 3 而不是 Table 4 的结果?重点是在 Excel 的同一周内仅显示 col2 的 1 个值,而不是每天都复制 col2 值。 table 实际上很大并且有更多的维度,所以我正在寻找一个可扩展的解决方案,而不是专门针对这个小的 table。我正在考虑 pandas 合并函数和工作表函数,但遇到了麻烦。谢谢!
Table 1
Table 2
Table 3
Table 4
d1 = {'week': [0, 0, 0, 1, 1, 1],
'day': [1, 2, 3, 1, 2, 3], 'col1': [30, 40, 20, 10, 20, 50]}
df1 = pd.DataFrame(data=d1)
d2 = {'week': [0, 1], "col2": [100, 200]}
df2 = pd.DataFrame(data=d2)
# Get table 4
dm = df1.merge(df2, how="right", on="week")
dm = dm.drop_duplicates(subset=['col2'], keep='last')
# Get table 3
desired = df1.merge(dm, how="left")