2017-04-21 6 views
0

나는 팬더에 R에서이 동등한를 계산하려면 : 팬더에서논리적 조건에 따라 서브 세트를 취하는 R의 팬더는 무엇입니까?

df$received[df$gender == 'F'] 

, 내가 사용하는 경우 :

df['received'][df['gender'] == 'F'] 

가 작동하지 않습니다.

아니면 내가하려고하면 :

df['received'] & df['gender'] == 'F' 

그것이 나에게주는 : 당신이 필요로하는 것 같다 unsupported operand type(s) for &: 'float' and 'bool'

+1

의 orry는'df.loc [df [ 'gender'] == 'F', 'received']'뒤에 있습니까? – EdChum

+1

** 논리적 인덱싱 ** – smci

답변

1

locboolean indexing과 :

df.loc[df['gender'] == 'F', 'received'] 

샘플 :

df = pd.DataFrame({'gender':['F','M','F'], 'received':[10,20,50]}) 
print (df) 
    gender received 
0  F  10 
1  M  20 
2  F  50 

print (df.loc[df['gender'] == 'F', 'received']) 
0 10 
2 50 
Name: received, dtype: int64 
+0

Hmm.strange ... 'F'와 'M'이 포함 된 3000 개의 레코드가 있는데 '1500'대신 3000 개의 레코드를 제공합니다. 그러나 당신의 예에서는 효과가 있습니다. – George

+0

아니요, 공백입니다. df.loc [df [ 'gender'] == 'F', 'received'] ' – George

+0

데이터에 문제가있는 것 같습니다. – jezrael