2017-04-21 59 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 ...我有3000个记录'F'和'M'.1500他们是'F'。上述解决方案给我3000记录而不是1500。但在你的例子中它有效。 – George

+0

不,whitespace.Just'df.loc [df ['gender'] =='F','received']' – George

+0

这似乎是数据的问题。 – jezrael