如何按列中的特定数据对数据框进行排序

问题描述 投票:0回答:1

所以,我正在研究 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

this is the result

我尝试使用 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
被卡住,仍然无法找到解决方案,甚至无法在网络中找到解决此问题的想法。我希望有人能帮助我。我为我糟糕的英语(不是第一语言)道歉。预先感谢。

pandas sorting
1个回答
0
投票

您有 2 种方法可以做到这一点:

  1. 聚合后过滤结果
  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

源数据集:uber_nyc_enriched.csv

© www.soinside.com 2019 - 2024. All rights reserved.