2013-11-20 6 views
37

팬더 데이터 프레임이 있습니다. 내 기둥 중 하나에 '뒤쳐지기'를 원합니다. 예를 들어, 전체 열 'gdp'를 하나씩 위로 이동 한 다음 나머지 열의 맨 아래에있는 모든 초과 데이터를 제거하여 모든 열의 길이가 다시 같도록하는 것을 의미합니다.파이썬 : 팬더 데이터 프레임의 열을 하나씩 이동

df = 
    y gdp cap 
0 1 2 5 
1 2 3 9 
2 8 7 2 
3 3 4 7 
4 6 7 7 

df_lag = 
    y gdp cap 
0 1 3 5 
1 2 7 9 
2 8 4 2 
3 3 7 7 

어쨌든이 작업을 수행 하시겠습니까?

답변

70
In [44]: df.gdp = df.gdp.shift(-1) 

In [45]: df 
Out[45]: 
    y gdp cap 
0 1 3 5 
1 2 7 9 
2 8 4 2 
3 3 7 7 
4 6 NaN 7 

In [46]: df[:-1]                                                                            
Out[46]: 
    y gdp cap 
0 1 3 5 
1 2 7 9 
2 8 4 2 
3 3 7 7 
+0

고전을 제거합니다. 마지막 행을 지우는 것을 포함한 답. 좋은 대답! –

6

시프트 열 GDP는 최대 : 다음

df.gdp = df.gdp.shift(-1) 

과 마지막 행을

2
df.gdp = df.gdp.shift(-1) ## shift up 
df.gdp.drop(df.gdp.shape[0] - 1,inplace = True) ## removing the last row 
관련 문제