繁体   English   中英

Pandas 将列的值替换为与另一个 Dataframe 的比较

[英]Pandas replace values of a column with comparison to another Dataframe

我想用另一个 Dataframe 中的值替换 PF 列中的值(如果存在)黄色没有对应关系,所以保持原样):

在此处输入图像描述

和 Dataframe 与旧值比较和新值:

在此处输入图像描述

我尝试这样做但不起作用 unicite['CustomerID'] = np.where(unicite['CustomerId'] == Fidclients['CustomerId'],Fidclients['Newvalue'], unicite['CustomerID'])

如果我正确理解了这个问题,您希望将表中的CustomerID中的值替换为unicite列中的值(如果它们存在于表NewvalueCustomerID列中Fidclients

我相信你必须合并表格才能实现这一点。 例如,

unicite = pd.DataFrame({'CustomerID': ['a', 'b', 'c']})
print(unicite)

    CustomerID
0   a
1   b
2   c

Fidclients = pd.DataFrame({'CustomerID': ['c', 'f', 'g'], 'Newvalue': ['x', 'y', 'z']})
print(Fidclients)

  CustomerID Newvalue
0          c        x
1          f        y
2          g        z

merged = unicite.merge(Fidclients, on='CustomerID', how='left')
merged.loc[merged.Newvalue.notnull(), 'CustomerID'] = merged.Newvalue
merged.drop('Newvalue', axis=1)

    CustomerID
0   a
1   b
2   x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM