IT story

Pandas DataFrame : 조건에 따라 열의 모든 값을 바꿉니다.

hot-time 2020. 9. 11. 19:41
반응형

Pandas DataFrame : 조건에 따라 열의 모든 값을 바꿉니다.


다음과 같은 간단한 DataFrame이 있습니다.

Pandas DataFrame

'First Season'열에서 모든 값을 선택하고 1990 년이 넘는 값을 1로 바꾸고 싶습니다.이 예에서 Baltimore Ravens만이 1996 년을 1로 바 꾸었습니다 (나머지 데이터는 그대로 유지).

다음을 사용했습니다.

df.loc[(df['First Season'] > 1990)] = 1

그러나 'First Season'열의 값뿐만 아니라 해당 행의 모든 ​​값을 1로 대체합니다.

해당 열의 값만 어떻게 바꿀 수 있습니까?


해당 열을 선택해야합니다.

In [41]:
df.loc[df['First Season'] > 1990, 'First Season'] = 1
df

Out[41]:
                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers          1950         1003

따라서 여기의 구문은 다음과 같습니다.

df.loc[<mask>(here mask is generating the labels to index) , <optional column(s)> ]

당신은 문서의미를 보여주는 pandas까지 10 분을 확인할 수 있습니다.

편집하다

당신은 부울 지표를 생성 할 경우, 당신은 부울 시리즈를 생성하는 부울 조건을 사용하여에 DTYPE 캐스트 할 수 있습니다 int이 변환됩니다 TrueFalse10각각 :

In [43]:
df['First Season'] = (df['First Season'] > 1990).astype(int)
df

Out[43]:
                 Team  First Season  Total Games
0      Dallas Cowboys             0          894
1       Chicago Bears             0         1357
2   Green Bay Packers             0         1339
3      Miami Dolphins             0          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers             0         1003

파티에 조금 늦었지만 여전히 numpy를 사용하는 것을 선호합니다.

import numpy as np
df['First Season'] = np.where(df['First Season'] > 1990, 1, df['First Season'])

df.First Season.loc[(df['First Season'] > 1990)] = 1

참고 URL : https://stackoverflow.com/questions/31511997/pandas-dataframe-replace-all-values-in-a-column-based-on-condition

반응형