使用同一列中具有另一列中匹配值的值填充 Pandas DataFrame 中的空值

Filling null values within a Pandas DataFrame with values from the same column that have a matching value in another column

我有一个 DataFrame,它在给定列中有空值,在同一索引中,还有另一列具有重复的非空值。我想弄清楚的是使用 Pandas 本机函数使用 ID 列作为参考来填充这些空值的正确方法是什么。

感谢您的帮助。

原文:

    Company ID
    AAA 100
    BBB 200
    CCC 150
    **NULL  100
    FFF 375
    **NULL  150

格式化:

    AAA 100
    BBB 200
    CCC 150
    **AAA   100
    FFF 375
    **CCC   150

你可以试试:

df['Company'] = df.groupby('ID')['Company'].transform('first')

如评论所述,以上内容将替换 all Company 而不仅仅是 nan。所以如果你有几个 Company 对应一个 ID,它可能会给出错误的结果。相反,您可以这样做:

df['Company'] = df['Company'].fillna(df.groupby('ID')['Company'].transform('first'))