python - Pandas 合并具有相同名称但不同行的 DataFrame 列
问题描述
我想合并两个数据框。两者具有相同的列名,但行数不同。
然后,较小数据帧中的值应替换其他数据帧中的值
到目前为止,我尝试使用 pd.merge
pd.merge(df1, df2, how='left', on='NodeID)
但我不知道如何告诉合并命令将正确数据框中的值用于列“X”和“Y”。
df1 = pd.DataFrame(data={'NodeID': [1, 2, 3, 4, 5], 'X': [0, 0, 0, 0, 0], 'Y': [0, 0, 0, 0, 0]})
df2 = pd.DataFrame(data={'NodeID': [2, 4], 'X': [1, 1], 'Y': [1, 1]})
结果应如下所示:
df3 = pd.DataFrame(data={'NodeID': [1, 2, 3, 4, 5], 'X': [0, 1, 0, 1, 0], 'Y':[0, 1, 0, 1, 0]})
解决方案
这可以通过concat
和来完成drop_duplicates
pd.concat([df2,df1]).drop_duplicates('NodeID').sort_values('NodeID')
Out[763]:
NodeID X Y
0 1 0 0
0 2 1 1
2 3 0 0
1 4 1 1
4 5 0 0
推荐阅读
- scala - 如何在我的 scala play 应用程序中为 heroku 设置 log4j2 配置文件?
- javascript - 使用 Asp.Net Core,如何将视图作为新的浏览器选项卡打开,然后稍后再关闭
- python - 数学模块和变量函数
- javascript - 使用 Vue.js 存储和使用用户数据的最佳实践
- react-native - 反应原生动画未运行
- reactjs - 从 Firebase 存储播放音频文件可以在本地工作,但不能在已部署的应用程序上工作
- c++ - Google Mock 一个返回 void 但采用 std::unique_ptr 的方法
- reactjs - 有没有办法在 NextJS 路由中使用多个参数?
- javascript - 如何创建倒数计时器关联至 graytimes.js
- javascript - 更改带有动画的按钮图标