微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过匹配变量将值从一个 Pandas 数据帧添加到另一个数据帧

如何解决通过匹配变量将值从一个 Pandas 数据帧添加到另一个数据帧

假设我有一个包含 2 列的 Pandas 数据框 df

           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']

,

您可能正在寻找这样的东西:

import pandas as pd
import numpy as np
# remove the c1 column from df2
df2.drop("c1",inplace=True)
# merge the 2 dataframes and get the c1 values corresponding to c2
newdf = df.merge(df2,on="c2")

如果列中确实存在缺失值(即 NA 和某些存在值的行,则解决方案会有所不同)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。