簡體   English   中英

在 pandas dataframe 的列中填充 null 值

[英]fill null values in a column of pandas dataframe

我有一個 pandas dataframe 有超過 4 列。 col1 中的某些值缺失,我想根據以下方法設置這些缺失值:

  1. 嘗試根據具有相同 col2、col3、col4 值的記錄的 col1 值的平均值來設置它
  2. 如果沒有這樣的記錄,則根據具有相同 col2,col3 值的記錄的 col1 值的平均值設置它
  3. 如果仍然沒有這樣的記錄,則根據具有相同 col2 值的記錄的 col1 值的平均值設置它
  4. 如果以上都找不到,則將其設置為 col1 中所有其他非缺失值的平均值

最好的方法是什么?

根據您的邏輯,您可以執行以下操作,其中每行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())
             )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM