python - 通过匹配变量将值从一个 pandas 数据帧添加到另一个数据帧
问题描述
df
假设我有一个带有 2 列的 pandas 数据框
c1 c2
0 v1 b1
1 v2 b2
2 v3 b3
3 v4 b4
4 v5 b5
第二个数据帧,df2
包含 c1、c2 和其他一些列。
c1 c2 c3 c4
0 "" b5 500 3
1 "" b2 420 7
2 "" b1 380 5
3 "" b2 470 9
4 "" b3 290 2
我的目标是将 df2 中 c1 的空值替换为 df 中的空值,对应于 c2 中的值,因此 df2 中 c1 的前五个值应分别为 v5、v2、v1、v2 和 v3。做这个的最好方式是什么?
解决方案
您可以做的一种简单方法是使用基于相似列的熊猫合并。
df2.drop('c1', axis=1, inplace=True)
main_df = pd.merge(df2, df, on="c2", how="left")
df2['c1'] = main_df['c1']
df2.columns = ['c1','c2','c3','c4']
推荐阅读
- android - 链接的 gradle 项目:没什么可显示的
- google-maps - 不确定获取现有远足径坐标/数据的 API 或库
- r - 尝试从我的 Twitter 分析中完全删除 https 文本的问题
- python - ValueError:未知标签类型:RandomForestClassifier 中的“未知”
- swift - 为什么有必要从 Optional 强制转换为 Any?
- yii2 - 如何在yii2中将params文件转换为i18n
- ispconfig - ISPConfig 自动配置 IP 地址
- python - 如何在 Python 中使用 Selenium 成功获取嵌套在 span 标签下的所有图像 src
- 3d - LIBGDX 3D:无法准确确定相机光线击中哪个网格三角形
- java - Java 递增编号