python - Pandas 输出到 Excel 时合并单元格
问题描述
我有两张桌子。表 1 按周/天,表 2 按周。当我在 pandas 中合并这两个表并输出到 Excel 时,我怎样才能得到表 3 而不是表 4 的结果?关键是在 Excel 中仅显示同一周 col2 的 1 个值,而不是每天重复 Col2 值。这张桌子实际上很大并且有更多的尺寸,所以我正在寻找一个可扩展的解决方案,而不是专门针对这个小桌子。我正在考虑熊猫合并函数和工作表函数,但遇到了麻烦。谢谢!
解决方案
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")
推荐阅读
- python-3.x - PyTorch 和 CUDA 驱动程序
- c# - 错误 CS0103 当前上下文中不存在名称“图像”
- javascript - 在javascript中转换没有前导零的数据字符串
- java - 如何从另一个类访问对象的方法,使该类没有太多可见性?
- python - 如何要求用户从枚举列表中选择一个项目,然后询问数量并循环返回,直到用户输入 0
- javascript - 在 Laravel 5.6 中使用自定义 JavaScript 函数
- sql-server - 在 TSQL 中导入或转换使用时区数据扩展的 ISO 8601 日期
- go - 如何使用反射在 Go 中找到空的结构值?
- javascript - require.resolve 找不到文件,即使 fs 可以
- javascript - 如何使用 async/await 进行错误处理而无需等待