pandas 相当于 R 根据逻辑条件取一个子集是什么?
What's the pandas equivalent of R take a subset based on a logical condition?
我想计算从 r 到 pandas 的等价物:
df$received[df$gender == 'F']
在pandas中,如果我使用:
df['received'][df['gender'] == 'F']
没用。
或者如果我尝试:
df['received'] & df['gender'] == 'F'
它给了我:unsupported operand type(s) for &: 'float' and 'bool'
看来你需要loc
with boolean 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
我想计算从 r 到 pandas 的等价物:
df$received[df$gender == 'F']
在pandas中,如果我使用:
df['received'][df['gender'] == 'F']
没用。
或者如果我尝试:
df['received'] & df['gender'] == 'F'
它给了我:unsupported operand type(s) for &: 'float' and 'bool'
看来你需要loc
with boolean 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