Python 3.x 如何在列范围内对观察结果进行分组?

Python 3.x 如何在列范围内对观察结果进行分组?,python-3.x,pandas,Python 3.x,Pandas,我有一个专栏名为Age 如何打印每个年龄组的观察次数 Example age groups: 20 - 25 25 - 30 30 - 35 35 - 40 40 - 45 50 - 50 Age Column 11 7 49 31 16 33 55 47 当然,我可以在loc语句中使用print with conditional,但这实在是太冗长了。 还有更好的办法吗 print(myDataFrame.loc[(myDataFrame.Age >= 20) &

我有一个专栏名为
Age

如何打印每个年龄组的观察次数

Example age groups:   

20 - 25
25 - 30
30 - 35
35 - 40
40 - 45
50 - 50 

Age Column

11
7
49
31
16
33
55
47
当然,我可以在loc语句中使用print with conditional,但这实在是太冗长了。 还有更好的办法吗

print(myDataFrame.loc[(myDataFrame.Age >= 20) & (myDataFrame.Age < 30)].count)

print(myDataFrame.loc[(myDataFrame.Age >= 30) & (myDataFrame.Age < 40)].count)

print(myDataFrame.loc[(myDataFrame.Age >= 40) & (myDataFrame.Age < 50)].count)
打印(myDataFrame.loc[(myDataFrame.Age>=20)和(myDataFrame.Age<30)].count)
打印(myDataFrame.loc[(myDataFrame.Age>=30)和(myDataFrame.Age<40)].count)
打印(myDataFrame.loc[(myDataFrame.Age>=40)和(myDataFrame.Age<50)].count)

一种方法,您可以使用
pd.Series.value\u计数
bin
参数:

df['Age Column'].value_counts(bins=[0,10,20,30,40,50,60], sort=False)
输出:

(-0.001, 10.0]    1
(10.0, 20.0]      2
(20.0, 30.0]      0
(30.0, 40.0]      2
(40.0, 50.0]      2
(50.0, 60.0]      1
Name: Age Column, dtype: int64
0-10     1
11-20    2
21-30    0
31-40    2
41-50    2
51-60    1
Name: Age Column, dtype: int64
如果要控制更多,可以使用pd.cut和value_计数:

s = pd.cut(df['Age Column'], bins=[0,10,20,30,40,50,60], labels=['0-10', '11-20', '21-30', '31-40', '41-50', '51-60'])
s.value_counts(sort=False)
输出:

(-0.001, 10.0]    1
(10.0, 20.0]      2
(20.0, 30.0]      0
(30.0, 40.0]      2
(40.0, 50.0]      2
(50.0, 60.0]      1
Name: Age Column, dtype: int64
0-10     1
11-20    2
21-30    0
31-40    2
41-50    2
51-60    1
Name: Age Column, dtype: int64

问题是
value\u计数
只返回唯一的值。如果我有33,15,33会怎么样?只算33次?不算。。。。它计算该值的数目。试试看
pd.Series([33,12,33]).value_counts()
That's beautiful:)我如何在同一行上为您的解决方案添加一个条件,即性别==myDataFrame中的男性?我通常的做法是创建新变量
malesDF=myDataFrame.loc[(myDataFrame.Gender=='Male')]
@bibscy。。。是的,这是正确的。首先筛选列以获取所需的值,然后使用值\计数并重命名结果以匹配筛选结果。