40000行1列数据保存为excel。其中有一百个空值。如行361 ......
当我执行df.fillna(method='bfill')
时,NaN值仍然是NaN。
如果切片的df片段包含Null值,则会对其进行处理。
我试过但仍然无法填充NaN细胞。
那有什么不对呢?
df文件在这里:
df=pd.read_execel('npp.xlsx')
df.fillna(method='bfill')
print( df.iloc[360:370,] )
Out[122]:
0
t360 NaN
t361 NaN
t362 NaN
t363 NaN
t364 220.50
t365 228.59
t366 NaN
t367 NaN
t368 NaN
t369 NaN
在切片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
答案 0 :(得分:3)
您需要分配输出:
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.bfill(inplace=True)