用关联值填充数据框 NULL 单元格

问题描述 投票:0回答:2

我需要使用已填充 ColA 组的值来填充 Null 值

原df:

ColA    ColB     ColC
cat      20      blue
cat      28      yellow
fish     32       red
fish     NaN      NaN
fish     NaN      NaN
dog      3       black
dog      311      tan
dog      755     white
frog     NaN      NaN
frog     NaN      NaN
frog     400      green
frog     NaN      NaN

保留每列中已填充单元格的行,但在存在空值的地方,我想用 ColA 组已填充的关联值填充这些单元格,例如:

所需的df:

ColA    ColB     ColC
cat      20      blue
cat      28      yellow
fish     32       red
fish     32       red
fish     32       red
dog      3       black
dog      311     tan
dog      755     white
frog     400     green
frog     400     green
frog     400     green
frog     400     green

任何想法表示赞赏。谢谢!

python pandas dataframe
2个回答
2
投票

尝试使用

goupby
进行前向填充 (
ffill
) 和后向填充 (
bfill
)

df[['ColB', 'ColC']] = df.groupby('ColA').ffill().bfill()

    ColA   ColB    ColC
0    cat   20.0    blue
1    cat   20.0  yellow
2   fish   32.0     red
3   fish   32.0     red
4   fish   32.0     red
5    dog    3.0   black
6    dog    3.0     tan
7    dog    3.0   white
8   frog  400.0   green
9   frog  400.0   green
10  frog  400.0   green
11  frog  400.0   green

0
投票

如果某列中缺少太多值,则可以删除该列。否则,我们可以用均值、中位数和众数来估算缺失值。

pandas 中可用于处理缺失值的一些函数是 fillna、dropna、bfill 和 interpolate。

--年龄替代的意思.. 更新后的_df = df update_df['年龄']=updated_df['年龄'].fillna(updated_df['年龄'].mean()) update_df.info()

© www.soinside.com 2019 - 2024. All rights reserved.