Pandas 在fillna()之后的熊猫df仍然是NaN
保存为excel的40000行1列数据。其中有一百个空值。例如第361行。。。 当我执行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
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)