gpt4 book ai didi

python - Pandas:通过过滤变量级别进行子集并将其分组返回计数?

转载 作者:行者123 更新时间:2023-11-30 23:09:35 24 4
gpt4 key购买 nike

我在这里看不到 Pandas 中树木的语法。

如何对现有数据帧进行子集化,在该数据帧中仅筛选一个变量的一个级别并将其按另一个级别进行分组,从而返回筛选后的变量的计数。据推测,这可以通过一次操作完成,而不需要创建 2 个对象。

下面是一个基于 mtcars 数据集的可重现示例。我修改了“cyl”和“am”变量以复制数据中的级别。

                    mpg   cyl  disp  hp drat    wt  qsec vs  am gear 
Mazda RX4 21.0 six 160.0 110 3.90 2.620 16.46 0 yes 4
Mazda RX4 Wag 21.0 two 160.0 110 3.90 2.875 17.02 0 yes 4
Datsun 710 22.8 six 108.0 93 3.85 2.320 18.61 1 no 4
Hornet 4 Drive 21.4 two 258.0 110 3.08 3.215 19.44 1 yes 3
Hornet Sportabout 18.7 six 360.0 175 3.15 3.440 17.02 0 yes 3
Valiant 18.1 two 225.0 105 2.76 3.460 20.22 1 yes 3
Duster 360 14.3 two 360.0 245 3.21 3.570 15.84 0 no 3

在这里,我只想过滤“am”列中"is"的汽车,并按“cyl”级别对它们进行分组。

子集数据应该看起来像这样,并且需要是一个数据框:

cyl   count_column 
six 2
two 3

最佳答案

df[df.am=="yes"].cyl.value_counts()

为此,您实际上不需要进行分组,因为您想要的只是计数。 df[df.am=="yes"] 仅提供 am 列中带有“yes”的行。然后,您可以在该子集的 cyl 列上使用 value_counts

结果是一个系列。如果您想要一个 DataFrame,请制作一个:

pandas.DataFrame({'count_column': df[df.am=="yes"].cyl.value_counts()})

关于python - Pandas:通过过滤变量级别进行子集并将其分组返回计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31102844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com