2016-07-18 2 views
2

다른 열의 last_valid_index() 위의 색인을 NaN에 사용하여 팬더 데이터 프레임의 열을 NaN으로 설정하는 방법.다른 열의 last_valid_index()를 사용하여 pandas 데이터 프레임을 NaN으로 설정하는 방법

에서 [2] :

  A   B 
0 1.068932 -0.794307 
2 -0.470056 1.192211 
4 -0.284561 0.756029 
6 1.037563 -0.267820 
8 -0.538478 NaN 
9. 1.03733 NaN 
10.1.037562 NaN 

df라고 : df.B.last_valid_index()6을 줄 것이다. 그래서 index < 6NaN

최종 결과로 설정할 수 열 A의 모든 행이해야합니다 :

 A   B 
0 NaN -0.794307 
2 NaN  1.192211 
4 NaN  0.756029 
6 NaN -0.267820 
8 -0.538478 NaN 
9. 1.03733 NaN 
10.1.037562 NaN 

답변

4

last_valid_index은 행 레이블을 반환합니다. 따라서, 라벨에 의해 열 및 행을 선택 df.loc을 사용하고, 새로운 값을 지정 : 예를 들어

idx = df['B'].last_valid_index() 
df.loc[:idx, 'A'] = np.nan 

,

import numpy as np 
import pandas as pd 
nan = np.nan 
df = pd.DataFrame({'A': [0, 9, 2, 9, 1, 7, 0], 'B': [4.0, 0.0, 7.0, 7.0, nan, nan, nan]}, 
        index=range(0,13,2)) 

idx = df['B'].last_valid_index() 
df.loc[:idx, 'A'] = np.nan 
print(df) 

 A B 
0 NaN 4.0 
2 NaN 0.0 
4 NaN 7.0 
6 NaN 7.0 
8 1.0 NaN 
10 7.0 NaN 
12 0.0 NaN 
을 수율
관련 문제