【发布时间】:2021-04-03 09:25:25
【问题描述】:
我有这两个 dfs
df1 = pd.DataFrame({'pupil': ["sarah", "john", "fred"],
'class': ["1a", "1a", "1a"]})
df2 = pd.DataFrame({'pupil_mixed': ["sarah", "john", "lex"],
'class': ["1a", "1c", "1a"]})
我想从 df2 中附加“pupil_mixed”列中的行值 如果值不重复,则到 df1 中的“瞳孔”列
期望的结果:
df1 = pd.DataFrame({'pupil': ["sarah", "john", "fred", 'lex'],
'class': ["1a", "1a", "1a", NaN]})
我使用append 和loc
df1 = df1.append(df2.loc[df2['pupil_mixed'] != df1['pupil'] ])
它只是将另一列附加到具有匹配行值的df,并将不匹配的行值更改为NaN
pupil class pupil_mixed
0 sarah 1a NaN
1 john 1a NaN
2 fred 1a NaN
2 NaN 1a lex
【问题讨论】:
-
为什么 lex 的类是
NaN?
标签: python pandas dataframe append