다른 열 pandas 데이터 프레임을 기반으로 열 값 추출


109

나는 다른 변수에서 한 변수 조건의 값을 추출하는 데 붙어 있습니다. 예를 들어, 다음 데이터 프레임 :

A  B
p1 1
p1 2
p3 3
p2 4

A언제 가치를 얻을 수 B=3있습니까? 의 값을 추출 할 때마다 A문자열이 아닌 객체를 얻었습니다.


item()마지막에 추가해야합니다 .
앤더슨 Zhu의

df.query그리고 pd.eval이 사용 사례에 대한 좋은 맞는 것처럼 보인다. pd.eval()함수 제품군, 기능 및 사용 사례 에 대한 정보는 pd.eval ()을 사용하는 pandas의 동적 표현식 평가를 참조하세요 .
cs95

답변:


193

loc조건을 만족하는 시리즈 iloc를 얻은 다음 첫 번째 요소를 얻는 데 사용할 수 있습니다 .

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'

24
당신의 도움을 주셔서 감사합니다. df.loc[df['B'] == 3, 'A'].item()나에게도 작동합니다.
Anderson Zhu

3
데이터 프레임에 B 열에 '3'의 여러 항목이있는 경우 어느 것을 선택합니까?
subhash

1
df.loc [df [ "Condition_Column"] == 0, ( "Column_1", "Column_2,"Column_3 ","Column_4 ")] 저에게 적합합니다.이 예제는 여러 열을 선택하는 경우입니다. 튜플에 있어야합니다.
Mustafa UCAR

df.loc [df [ 'B'] == 300이면 'A']. iloc [0]은 출력이 무엇인지 의미합니까?
user1999109

.item ()은 분명히 더 이상 사용되지 않으며 제거 될 것입니다. 이를 수행하는 다른 방법이 있습니까? 쿼리 할 .loc 메서드와 함께 반환되는 열 또는 데이터 형식의 이름에는 관심이 없습니다.
Dan

40

query입력이 적은을 시도해 볼 수 있습니다 .

df.query('B==3')['A']

쿼리뿐만 아니라 흥미 원인은 우리가 더 복잡한 절을 추가 할 수 있습니다
사미르 대머리

1
IMHO, 이것이 최고의 답변입니다.
NLR

27

df[df['B']==3]['A'], df가 pandas.DataFrame이라고 가정합니다.


이 방법이 pandas 공식 문서에 정확히 설명되어있는 링크를 제공해 주시겠습니까?
vasili111

][부분을 의미 합니다.
vasili111

11

df[df['B']==3]['A'].values괄호없이 항목 자체를 원하는 경우 사용


이 방법이 pandas 공식 문서에 정확히 설명되어있는 링크를 제공해 주시겠습니까? ][부분을 의미 합니다.
vasili111

[]와 함께 결과를 반환합니다
Sid

[0]값에 액세스하려면 끝에 입력해야 합니다.
rubebop

0
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()

나는 또한 내 과제를 위해이 클로징 및 추출 작업을 수행했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.