我是 pandas 的新手,正在尝试用列值匹配的 df2 替换 df1 中的列值 (NaN)。并面临以下错误。
df1
unique_col | Measure
944537 NaN
7811403 NaN
8901242114307 1
df2
unique_col | Measure
944537 18
7811403 12
8901242114307 17.5
df1.loc[(df1.unique_col.isin(df2.unique_col) &
df1.Measure.isnull()), ['Measure']] = df2[['Measure']]
我有两个包含 300 万条记录的数据框,在执行以下操作时遇到以下错误:
ValueError: cannot reindex from a duplicate axis
请您参考如下方法:
轻松填充 nans 的方法是使用 fillna功能。在你的情况下,如果你有 dfs 作为(注意索引)
unique_col Measure
0 944537 NaN
1 7811403 NaN
2 8901242114307 1.0
unique_col Measure
0 944537 18.0
1 7811403 12.0
2 8901242114307 17.5
你可以简单地
>>> df.fillna(df2)
unique_col Measure
0 944537 18.0
1 7811403 12.0
2 8901242114307 1.0
如果索引不与上面相同,可以设置相同并使用相同的函数
df = df.set_index('unique_col')
df.fillna(df2.set_index('unique_col'))
