판다의 다른 컬럼을 기준으로 컬럼 값 추출
한 변수의 값을 다른 변수의 조건으로 추출하는 데 시간이 걸리는 것 같습니다.예를 들어 다음과 같은 데이터 프레임이 있습니다.
A B
p1 1
p1 2
p3 3
p2 4
어떻게 하면 가치를 얻을 수 있을까요?A
언제B=3
? 내가 가치관을 추출할 때마다A
끈이 아니라 물체가 있어요
를 사용하여 조건을 만족시키는 시리즈를 얻은 다음 첫 번째 요소를 얻을 수 있습니다.
In [2]: df
Out[2]:
A B
0 p1 1
1 p1 2
2 p3 3
3 p2 4
In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2 p3
Name: A, dtype: object
In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'
시도해 보세요query
보다 적은 타이핑입니다.
df.query('B==3')['A']
df[df['B']==3]['A']
df가 당신의 팬더라고 가정하면요데이터 프레임
사용하다df[df['B']==3]['A'].values[0]
괄호 없이 아이템만 원하는 경우
편집: 아래 "이전"에서 설명한 내용은 체인 인덱싱이며 상황에 따라 작동하지 않을 수 있습니다.베스트 프랙티스는 loc를 사용하는 것이지만 개념은 동일합니다.
df.loc[row, col]
행과 콜은 직접 지정(예: 'A' 또는 ['A', 'B'])하거나 마스크로 지정할 수 있습니다(예: df['B'] == 3).다음 예시를 사용합니다.
df.loc[df['B'] == 3, 'A']
이전 버전:이런 용어로 생각하는 게 더 쉽지만 다른 답을 빌리는 거예요.원하는 값은 데이터 프레임에 있습니다.
df[*column*][*row*]
여기서 열과 행은 반환할 값을 가리킵니다.예를 들어 열은 'A'이고 행에는 마스크를 사용합니다.
df['B'] == 3
시리즈로부터 최초의 일치치를 취득하려면 , 다음의 몇개의 옵션이 있습니다.
df['A'][df['B'] == 3].values[0]
df['A'][df['B'] == 3].iloc[0]
df['A'][df['B'] == 3].to_numpy()[0]
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()
나는 또한 나의 과제를 위해 이 Clausing과 Extraction 작업을 수행했다.
대신 사용할 수 있습니다.iloc[0]
. 값이 1개뿐일 경우 더 선명하게 표시됩니다.
df.loc[df['B'] == 3, 'A'].squeeze()
출력:
'p3'
언급URL : https://stackoverflow.com/questions/36684013/extract-column-value-based-on-another-column-in-pandas
'source' 카테고리의 다른 글
자산 폴더에서 ListView로 로컬 JSON 파일을 해석하려면 어떻게 해야 합니까? (0) | 2022.11.15 |
---|---|
Vue.js - 요소 UI - 폼 검증 regexp (0) | 2022.11.15 |
PHP에서 객체의 속성을 삭제할 수 있습니까? (0) | 2022.11.15 |
JavaScript를 사용하여 요소에서 CSS 클래스를 삭제합니다(jQuery 없음). (0) | 2022.11.15 |
JavaScript: 클라이언트 측과 서버 측 검증 (0) | 2022.11.15 |