当前位置: 首页 > 知识库问答 >
问题:

在dataframe的列中填充空值

商鸿哲
2023-03-14

我有一个熊猫数据框,它有超过4列。col1中的某些值缺失,我希望根据以下方法设置这些缺失的值:

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

最好的方法是什么?

共有1个答案

宋正真
2023-03-14

根据你的逻辑,你可以做如下的事情,其中每一行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())
             )
 类似资料:
  • 我的dataframe由多个具有NaN值的列组成。我只想将特定列(列名:MarkDown1)的NaN值替换为0。

  • 我有以下示例数据框架: 我只想替换前两列中的空值——列“a”和“b”: 这是创建示例数据帧的代码: 我知道如何使用替换所有空值: 当我尝试这样做时,我失去了第三列:

  • 问题内容: 我从这里的pandas DataFrame文档开始:http ://pandas.pydata.org/pandas-docs/stable/dsintro.html 我想在时间序列类型的计算中用值迭代地填充DataFrame。所以基本上,我想用列A,B和时间戳记行(全为0或全部为NaN)初始化DataFrame。 然后,我将添加初始值,然后遍历此数据,计算出大约某行之前的新行row[

  • 本文向大家介绍在MySQL中用零填充列的值,包括了在MySQL中用零填充列的值的使用技巧和注意事项,需要的朋友参考一下 为此,请使用零填充的概念。它使用零填充字段的显示值,直到字段定义中设置的显示宽度 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出-

  • 我有一个页眉和页脚(),中间有一个。

  • 我的熊猫数据框中有2列。 我想去掉可乐和可乐,用可乐代替。 基本上,我需要用cola和colb中的值填充colc。如果可乐中有一个楠,那么它会从可乐中拉出,如果可乐中有一个楠,它会从可乐中拉出。如果可乐和可乐中没有楠,它们应该总是相等的。 我将如何在熊猫身上实现这一点?