2014-11-19 3 views

답변

26

@Woody Pride에서 제안한 for 루프는 필요하지 않습니다. 당신은 그것을 줄일 수

cols = ['X', 'Y'] 
df[cols] = df[cols].ffill() 

그리고 나는 또한 자체 포함 된 예를 추가했습니다 :

>>> import pandas as pd 
>>> import numpy as np 
>>> 
>>> #%% create dataframe 
... ts1 = [0, 1, np.nan, np.nan, np.nan, np.nan] 
>>> ts2 = [0, 2, np.nan, 3, np.nan, np.nan] 
>>> d = {'X': ts1, 'Y': ts2, 'Z': ts2} 
>>> df = pd.DataFrame(data=d) 
>>> print(df.head()) 
    X Y Z 
0 0 0 0 
1 1 2 2 
2 NaN NaN NaN 
3 NaN 3 3 
4 NaN NaN NaN 
>>> 
>>> #%% apply forward fill 
... col = ['X', 'Y'] 
>>> df[col] = df[col].ffill() 
>>> print(df.head()) 
    X Y Z 
0 0 0 0 
1 1 2 2 
2 1 2 NaN 
3 1 3 3 
4 1 3 NaN 

(일반적으로 내가 @Woody 프라이드의 대답에 댓글을 것입니다,하지만 난 담당자가 없습니다.)

2
for col in ['X', 'Y']: 
    df[col] = df[col].ffill() 
관련 문제