복붙노트

[PYTHON] pandas 데이터 프레임의 열을 하나씩 변경 하시겠습니까?

PYTHON

pandas 데이터 프레임의 열을 하나씩 변경 하시겠습니까?

팬더 데이터 프레임 있어요. 내 기둥 중 하나에 '뒤쳐지기'를 원합니다. 예를 들어, 전체 열 '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

어쨌든 이걸 할거야?

해결법

  1. ==============================

    1.

    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
    
  2. ==============================

    2.shift column gdp up :

    shift column gdp up :

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

    그런 다음 마지막 행을 제거하십시오.

  3. ==============================

    3.

    df.gdp = df.gdp.shift(-1) ## shift up
    df.gdp.drop(df.gdp.shape[0] - 1,inplace = True) ## removing the last row
    
  4. from https://stackoverflow.com/questions/20095673/shift-column-in-pandas-dataframe-up-by-one by cc-by-sa and MIT license