Python 如果';x';在一列中发生,并且';y';发生在另一个
我需要找到包含字母“c”且也是男性的姓名的百分比 我可以单独实现每一个目标,但不能一起实现。我对python编码比较陌生,所以我不确定是否需要运行if语句,或者如何在这种情况下正确运行它Python 如果';x';在一列中发生,并且';y';发生在另一个,python,pandas,Python,Pandas,我需要找到包含字母“c”且也是男性的姓名的百分比 我可以单独实现每一个目标,但不能一起实现。我对python编码比较陌生,所以我不确定是否需要运行if语句,或者如何在这种情况下正确运行它 len(dogs[dogs['Name'].str.contains('c')]) len(dogs[dogs['Gender'].str.contains('male')]) 我想知道如何找到同时包含“c”和“male”的内容,如果需要,请使用&对按位和百分比使用mean,或计数使用sum:
len(dogs[dogs['Name'].str.contains('c')])
len(dogs[dogs['Gender'].str.contains('male')])
我想知道如何找到同时包含“c”和“male”的内容,如果需要,请使用
&
对按位和百分比使用mean
,或计数使用sum
:
dogs = pd.DataFrame({
'Name':['abc','c','sa'],
'Gender':['female','male','female']
})
print (dogs)
Name Gender
0 abc female
1 c male
2 sa female
m1 = dogs['Name'].str.contains('c')
m2 = dogs['Gender'].str.contains('male')
print (m1)
0 True
1 True
2 False
Name: Name, dtype: bool
print (m2)
0 True
1 True
2 True
Name: Gender, dtype: bool
print ((m1 & m2).mean())
0.6666666666666666
print ((m1 & m2).sum())
2
如果需要检查值,请使用或==
:
m1 = dogs['Name'].eq('c')
m2 = dogs['Gender'].eq('male')
m1 = dogs['Name'] == 'c'
m2 = dogs['Gender'] == 'male'
print (m1)
0 False
1 True
2 False
Name: Name, dtype: bool
print (m2)
0 False
1 True
2 False
Name: Gender, dtype: bool
print ((m1 & m2).mean())
0.3333333333333333
print ((m1 & m2).sum())
1