age_cleaned_titanic_df.groupby('Age_group').mean()
age_cleaned_titanic_df.groupby('Age_group').get_group((0,10])
get_group函数给出了错误,因为'Age_group'列的值是bin的半开索引。 (0,10] (10,20] ... ... (70,80)。
如何执行get_group()方法?文档和stackoverflow中的大多数示例都讨论了列值,这些列是字符串/数字,其中get_group()变得简单明了。如何在groupby列是一个类别时执行此操作?
答案 0 :(得分:0)
0,
和10
之间必须有空格 - 就像'(0, 10]'
一样。
这是一个小型演示:
df = pd.DataFrame({'age': np.random.randint(10,30,20)})
df['Age_group'] = pd.cut(df.age, bins=[10, 15, 20, 25, 30])
这有效:
In [141]: df.groupby('Age_group').get_group('(10, 15]')
Out[141]:
age Age_group
1 11 (10, 15]
6 12 (10, 15]
11 13 (10, 15]
12 14 (10, 15]
14 15 (10, 15]
15 12 (10, 15]
17 14 (10, 15]
18 13 (10, 15]
现在相同,但值之间没有空格:
In [142]: df.groupby('Age_group').get_group('(10,15]')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-142-53b04eccd579> in <module>()
----> 1 df.groupby('Age_group').get_group('(10,15]')
...
KeyError: '(10,15]'
数据:
In [139]: df
Out[139]:
age Age_group
0 25 (20, 25]
1 11 (10, 15]
2 27 (25, 30]
3 24 (20, 25]
4 27 (25, 30]
5 10 NaN
6 12 (10, 15]
7 20 (15, 20]
8 16 (15, 20]
9 29 (25, 30]
10 21 (20, 25]
11 13 (10, 15]
12 14 (10, 15]
13 21 (20, 25]
14 15 (10, 15]
15 12 (10, 15]
16 29 (25, 30]
17 14 (10, 15]
18 13 (10, 15]
19 19 (15, 20]