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

3

我有一个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
1个回答

4

您可以尝试以下方法:

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

如前所述,上述代码将替换所有的Company,而非只有值为nanCompany属性。如果该ID有多个Company,则可能导致错误结果。相反,您可以这样做:
df['Company'] = df['Company'].fillna(df.groupby('ID')['Company'].transform('first'))

我认为这将转换所有具有相同值的行,而不仅仅是那些具有空值的行。 - Ayoub ZAROU
1
@AyoubZAROU 这是真的。我原本以为每个“ID”应该有唯一的“Company”。但这很容易修复。 - Quang Hoang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接