gpt4 book ai didi

python - 在 pandas 的列匹配中替换另一个数据框中的 NaN 值的正确方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:08 24 4
gpt4 key购买 nike

我是 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'))

关于python - 在 pandas 的列匹配中替换另一个数据框中的 NaN 值的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51571350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com