Pandas 在fillna()之后的熊猫df仍然是NaN

Pandas 在fillna()之后的熊猫df仍然是NaN,pandas,Pandas,保存为excel的40000行1列数据。其中有一百个空值。例如第361行。。。 当我执行df.fillna(method='bfill')时,NaN值仍然是NaN。 如果切片的df片段包含空值,它将按预期进行处理。 我试过了,但还是无法填充NaN单元格。 那有什么问题吗? df文件在这里: 在切片df上应用fillna()时,可以替换NaN值: print( df.iloc[360:370,].fillna(method='bfill') ) 0 t360 220.50 t36

保存为excel的40000行1列数据。其中有一百个空值。例如第361行。。。 当我执行
df.fillna(method='bfill')
时,NaN值仍然是NaN。 如果切片的df片段包含空值,它将按预期进行处理。 我试过了,但还是无法填充NaN单元格。 那有什么问题吗? df文件在这里:

在切片df上应用
fillna()
时,可以替换NaN值:

print( df.iloc[360:370,].fillna(method='bfill') )
       0
t360  220.50
t361  220.50
t362  220.50
t363  220.50
t364  220.50
t365  228.59
t366     NaN
t367     NaN
t368     NaN
t369     NaN

您需要分配输出:

df = pd.read_excel('npp.xlsx')
df = df.fillna(method='bfill')

df = df[df[0].isnull()]
print (df)
Empty DataFrame
Columns: [0]
Index: []
或者使用
inplace=True
参数:

df = pd.read_excel('npp.xlsx')
df.fillna(method='bfill', inplace=True)
df = df[df[0].isnull()]
print (df)
Empty DataFrame
Columns: [0]
Index: []
或更短:

df = df.bfill()


多个问题,是否分配输出
df=df.fillna(方法='bfill'
)或
df.fillna(方法='bfill',inplace=True)
?可能重复所有正确的方法!
df=df.fillna(方法='bfill')
是否不等于
df.fillna(方法='bfill')
?有点困惑。当我测试时,为什么小df可以正确地应用
df.fillna(method='bfill')
?是的,它是相等的,但默认情况下此函数在
就地不起作用
。因此,有必要指定或添加参数。这就像
df.sum()
然后检查
df
——也没有求和序列。但是可以使用
df=df.sum()
df
但是使用
df.fillna(方法='bfill')
测试一个小数据,它就可以运行了。那么区别是什么呢?
fillna
返回另一个
df
,因此如果没有赋值或没有
inplace=True
,则
df
不会更改。好!谢谢你的解释。
df = df.bfill()
df.bfill(inplace=True)