2017-01-11 164 views
1

使用熊貓數據幀的初學者。我有此數據與列A和B(Test.csv)缺失值設置如下:使用向前和向後填充熊貓數據幀填充缺失值(填充和填充)

DateTime    A    B 
01-01-2017 03:27   
01-01-2017 03:28   
01-01-2017 03:29 0.18127718 -0.178835737 
01-01-2017 03:30 0.186923018 -0.183260853 
01-01-2017 03:31   
01-01-2017 03:32   
01-01-2017 03:33 0.18127718 -0.178835737 

我可以使用此代碼使用正向傳播中的值填補,但是這僅填充在爲3時31和03:32,而不是03:27和03:28。

import pandas as pd 
import numpy as np 

df = pd.read_csv('test.csv', index_col = 0) 
data = df.fillna(method='ffill') 
ndata = data.to_csv('test1.csv') 

結果:

DateTime    A    B 
    01-01-2017 03:27   
    01-01-2017 03:28   
    01-01-2017 03:29 0.18127718 -0.178835737 
    01-01-2017 03:30 0.186923018 -0.183260853 
    01-01-2017 03:31 0.186923018 -0.183260853 
    01-01-2017 03:32 0.186923018 -0.183260853 
    01-01-2017 03:33 0.18127718 -0.178835737 

我怎麼能包括 'Bfill' 在遺漏值來填充爲03:27和03:28使用backfil?

+0

你嘗試'數據= DF。 fillna(方法= 'bfill')'?甚至'data = df.bfill()'? – EdChum

回答

4

如果需要向前和向後填充替換NaN值可以使用ffillbfill

print (df) 
         A   B 
DateTime        
01-01-2017 03:27  NaN  NaN 
01-01-2017 03:28  NaN  NaN 
01-01-2017 03:29 0.181277 -0.178836 
01-01-2017 03:30 0.186923 -0.183261 
01-01-2017 03:31  NaN  NaN 
01-01-2017 03:32  NaN  NaN 
01-01-2017 03:33 0.181277 -0.178836 

data = df.ffill().bfill() 
print (data) 
         A   B 
DateTime        
01-01-2017 03:27 0.181277 -0.178836 
01-01-2017 03:28 0.181277 -0.178836 
01-01-2017 03:29 0.181277 -0.178836 
01-01-2017 03:30 0.186923 -0.183261 
01-01-2017 03:31 0.186923 -0.183261 
01-01-2017 03:32 0.186923 -0.183261 
01-01-2017 03:33 0.181277 -0.178836 

什麼是相同的功能fillna與參數:

data = df.fillna(method='ffill').fillna(method='bfill')