所以,我正在研究 pandas,任务之一是按行政区和假期对表的值进行排序(此列中的数据只有“Y”(如果是假期)和“N”(如果不是)。我也平均拾取率(根据任务要求),但我想专门显示“Y”上的数据。
import pandas as pd
df = pd.read_csv("2_taxi_nyc.csv")
df.groupby(["borough", "hday"]).agg({"pickups": 'mean'})type here
我尝试使用 df.query,但它没有
t work (error was smth like exp is not supposed to be a "class bool" and in another try a "list"). After that I
被卡住,仍然无法找到解决方案,甚至无法在网络中找到解决此问题的想法。我希望有人能帮助我。我为我糟糕的英语(不是第一语言)道歉。预先感谢。
您有 2 种方法可以做到这一点:
案例1:
>>> (df.groupby(['borough', 'hday'], as_index=False) # <- group labels as columns
.agg({'pickups': 'mean'}).query("hday == 'Y'")) # <- filter with query
borough hday pickups
1 Bronx Y 48.065868
3 Brooklyn Y 527.011976
5 EWR Y 0.041916
7 Manhattan Y 2035.928144
9 Queens Y 320.730539
11 Staten Island Y 1.497006
案例2:
>>> df[df['hday'] == 'Y'].groupby('borough', as_index=False)['pickups'].mean()
borough pickups
0 Bronx 48.065868
1 Brooklyn 527.011976
2 EWR 0.041916
3 Manhattan 2035.928144
4 Queens 320.730539
5 Staten Island 1.497006