有没有办法在非ffill
的值上使用NaN
方法?
我的数据框中有NaN
,但我已使用
NaN
addNan = sample['colA'].replace(['A'], 'NaN')
这就是我的DataFrame,df
看起来像
ColA ColB ColC ColD
B A A C
NaN B A A
C D D A
NaN A A B
我正在尝试使用NaN
填充这些ffill
,因此它们会被最后一个已知值填充。
fill = df.fillna(method='ffill', inplace = True)
这没有任何区别,也尝试了Na
而不是NaN
答案 0 :(得分:1)
我认为您需要先将NaN
替换为np.nan
,因为NaN
只是文字:
import pandas as pd
import numpy as np
print (sample)
ColA ColB ColC ColD
0 B A A C
1 A B A A
2 C D D A
3 A A A B
sample['ColA'] = sample['ColA'].replace(['A'], np.nan)
print (sample)
ColA ColB ColC ColD
0 B A A C
1 NaN B A A
2 C D D A
3 NaN A A B
如果使用inplace = True
,则会返回None
,但是就地填充值:
sample.fillna(method='ffill', inplace = True)
#sample.ffill(inplace = True)
print (sample)
ColA ColB ColC ColD
0 B A A C
1 B B A A
2 C D D A
3 C A A B