2017-11-16 1 views
0

팬더 데이터 프레임 조건 열의 다른 열 값을 만들려고합니다. 다른 열의 i + 1 값이 i 값보다 크면 값은 1이고 그렇지 않으면 0입니다. 예를 들어다른 열 값에 조건부 팬더 열 만들기

:

column1 column2 
    5  1 
    6  0 
    3  0 
    2  1 
    4  0 

방법, 컬럼을 반복하여 2 열을 만들려면 어떻게해야합니까?

답변

1

첫 번째 열에서 -1과 같이 diff 메서드를 사용할 수 있습니다. 그런 다음 두 번째 열을 만들기 위해 0보다 작은 지 확인하십시오.

import pandas as pd 

df = pd.DataFrame({'c1': [5,6,3,2,4]}) 
df['c2'] = (df.c1.diff(-1) < 0).astype(int) 

df 
# returns: 
    c1 c2 
0 5 1 
1 6 0 
2 3 0 
3 2 1 
4 4 0 
+0

는 정말 고마워요 !!!! – DerivativeIntegral

0

또한 shift을 사용할 수 있습니다. 성능은 diff과 거의 동일하지만 조금 더 빨라 보이는 diff입니다.

df = pd.DataFrame({'column1': [5,6,3,2,4]}) 
df['column2'] = (df['column1'] <df['column1'].shift(-1)).astype(int) 
print(df) 
    column1 column2 
0  5  1 
1  6  0 
2  3  0 
3  2  1 
4  4  0