使用同一列中具有另一列中匹配值的值填充 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'))
我有一个 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'))