2017-04-21 1 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

秒あなたは 'df.loc [df ['gender'] == 'F'、 'received']'の後ろにいますか? – EdChum

+1

これは**論理インデックスと呼ばれる** – smci

答えて

1

あなたがboolean indexinglocを必要とするようだ:

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'.The「それらのM'.1500は」私の代わりに、1500年の3000件のレコードを与え「F」と3000本の記録を持っています。しかし、あなたの例ではそれは機能します。 – George

+0

いいえ、whitespace.Just 'df.loc [[ '性別'] == 'F' DFと、 '受信']' – George

+0

これは、データに問題と思われます。 – jezrael

関連する問題