在数据框的列中填充连续NAN

时间:2018-07-12 08:58:16

标签: python pandas dataframe null nan

我有一个具有C列的数据框,我想用相同的数字填充连续的空白,因为以后我需要对该行进行分组。

例如

A B C
 1 2 Nan
 1 2 Nan
 1 2 3
 1 2 Nan
 1 2 Nan

我想要的输出是这样的

A B C
1 2 1
1 2 1
1 2 3
1 2 2
1 2 2

我尝试使用shift()进行比较,但未达到所需的输出。

2 个答案:

答案 0 :(得分:2)

您可以将fillna由布尔Series创建的新maskcumsum一起使用:

df['C'] = df['C'].fillna(df['C'].notnull().cumsum() + 1)

print (df)
   A  B    C
0  1  2  1.0
1  1  2  1.0
2  1  2  3.0
3  1  2  2.0
4  1  2  2.0

详细信息

print (df['C'].notnull().cumsum())
0    0
1    0
2    1
3    1
4    1
Name: C, dtype: int32

答案 1 :(得分:0)

函数fillna是您的解决方案:

dataframe['yourColumn'] = dataframe['yourColumn'] .fillna( 1 , inplace=True)

此外,您可以输入想要替换nan值的任何值。 例如,您可以设置均值:

dataframe['yourColumn']= dataframe['yourColumn'].fillna(dataset['yourColumn'] .mean(), inplace=True)