簡體   English   中英

在數據框的列中填充連續NAN

[英]Fill Consecutive NANs in a column of a dataframe

我有一個具有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()進行比較,但未達到所需的輸出。

您可以使用fillna由boolean mask創建的新Seriescumsum

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

函數fillna是您的解決方案:

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

此外,您可以放置​​任何要替換nan值的值。 例如,您可以設置均值:

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

暫無
暫無

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

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