熊猫 - 使用' ffill'关于Na以外的其他值

时间:2016-08-12 10:07:00

标签: python pandas dataframe nan pandasql

有没有办法在非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

1 个答案:

答案 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