在 pandas 数据框的列中填充空值

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

我有一个包含超过 4 列的 pandas 数据框。 col1 中的某些值丢失,我想根据以下方法设置这些丢失的值:

  1. 尝试根据具有相同 col2,col3,col4 值的记录的 col1 值的平均值来设置它
  2. 如果没有这样的记录,则根据具有相同 col2,col3 值的记录的 col1 值的平均值来设置
  3. 如果仍然没有这样的记录,则根据具有相同 col2 值的记录的 col1 值的平均值来设置
  4. 如果以上都找不到,则将其设置为 col1 中所有其他非缺失值的平均值

最好的方法是什么?

python pandas dataframe missing-data
2个回答
2
投票

根据您的逻辑,您可以执行以下操作,其中

fillna
的每一行对应于您问题中的一个项目符号点,顺序相同:

df['col1'] = (df['col1']
               .fillna(df.groupby(['col2','col3','col4'])['col1'].transform('mean'))
               .fillna(df.groupby(['col2','col3'])['col1'].transform('mean'))
               .fillna(df.groupby(['col2'])['col1'].transform('mean')
               .fillna(df['col1'].mean())
             )

0
投票

--- 用零填充 null 空值

df_with_dummies.fillna(值= 0,就地= True)

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