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

PySpark:如何为特定列填充dataframe中的值?

司马渝
2023-03-14

我有以下示例数据框架:

a    | b    | c   | 

1    | 2    | 4   |
0    | null | null| 
null | 3    | 4   |

我只想替换前两列中的空值——列“a”和“b”:

a    | b    | c   | 

1    | 2    | 4   |
0    | 0    | null| 
0    | 3    | 4   |

这是创建示例数据帧的代码:

rdd = sc.parallelize([(1,2,4), (0,None,None), (None,3,4)])
df2 = sqlContext.createDataFrame(rdd, ["a", "b", "c"])

我知道如何使用替换所有空值:

df2 = df2.fillna(0)

当我尝试这样做时,我失去了第三列:

df2 = df2.select(df2.columns[0:1]).fillna(0)

共有2个答案

苏雅珺
2023-03-14

使用字典填充某些列的值:

df.fillna( { 'a':0, 'b':0 } )
萧晔
2023-03-14
df.fillna(0, subset=['a', 'b'])

有一个名为<code>subset<code>的参数用于选择列,除非您的spark版本低于1.3.1

 类似资料:
  • 我的dataframe由多个具有NaN值的列组成。我只想将特定列(列名:MarkDown1)的NaN值替换为0。

  • 我有一个熊猫数据框,它有超过4列。col1中的某些值缺失,我希望根据以下方法设置这些缺失的值: 尝试根据具有相同col2, col3, col4值的记录的col1值的平均值来设置它 如果没有这样的记录,则根据具有相同col2, col3值的记录的col1值的平均值来设置它 如果仍然没有这样的记录,则根据具有相同col2值的记录的col1值的平均值来设置它 如果以上都找不到,将其设置为col1中所有

  • 有两个,我想删除一个。我该怎么办?

  • 我正在为大学做一个项目。我刚刚学习了Java和JavaFX。 我有问题,也许有人能帮我。 有了这个小软件,你可以计划一周的任务。在tableview中,您有星期一到星期五的列。 我有一个数据库,在那里我可以获取对象“auftragsveretilung”(意思是任务,计划在特定日期)。这些对象有一个序列号(=seriennr)和一个日期(=bearbeitungsdatum)。 为了在tablev

  • 我有一个单列PySpark数据框。 我想使用像熊猫ffill()函数一样的前向填充来计算缺失值。 期望输出 免责声明:我在stackoverflow中有一些解决方案,但当您只有一列作为输入时,它们就不起作用了。

  • 问题内容: 我有这个DataFrame,只想要EPS列不是的记录NaN: …例如df.drop(....)要得到这个结果的数据框: 我怎么做? 问题答案: 不要。就拿行,其中是有限的: