我有以下输入
输入:
Bus Fare Startcity
56 98 sathy
95 85 sathy
98 95 chennai
85 92 chennai
56 75 chennai
56 83 chennai
我必须算由票价它> = 90和票价<= 98和GROUPBY“Startcity”
输出1:
Fare Startcity
1 Sathy
2 Chennai
如果票价> = 90且票价<= 98以及groupby“ Startcity”,也可以计算平均值
输出2:
Fare Startcity
98 Sathy
93.5 Chennai
如果要计算每组每个条件的行数,请通过ge
(<=
)创建布尔掩码,并True
通过sum
以下方式对值进行计数:
df1 = df['Fare'].ge(90).groupby(df['Startcity']).sum().astype(int).reset_index()
print (df1)
Startcity Fare
0 chennai 2
1 sathy 1
如果要between
进行过滤检查,请使用:
df = df[df['Fare'].between(90, 98)].groupby('Startcity')['Fare'].mean().reset_index()
print (df)
Startcity Fare
0 chennai 93.5
1 sathy 98.0
或者,如果还0
需要不匹配的组:
df3=df.groupby('Startcity')['Fare'].apply(lambda x: x[x.between(90, 98)].mean()).reset_index()
print (df3)
Startcity Fare
0 chennai 93.5
1 sathy 98.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句