반응형
Pandas DataFrame : 조건에 따라 열의 모든 값을 바꿉니다.
다음과 같은 간단한 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
이 변환됩니다 True
와 False
에 1
와 0
각각 :
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
반응형
'IT story' 카테고리의 다른 글
파이썬 matplotlib에서 (x, y) 좌표 목록 플로팅 (0) | 2020.09.11 |
---|---|
argparse 선택적 인수가 설정되었는지 확인하십시오. (0) | 2020.09.11 |
AVPlayer 및 MPMoviePlayerController 차이점 (0) | 2020.09.11 |
Entity Framework가 너무 느립니다. (0) | 2020.09.11 |
Guava의 선택 수업의 요점은 무엇입니까 (0) | 2020.09.11 |