gpt4 book ai didi

python - 仅显示定义组的 Pandas groupby 结果

转载 作者:行者123 更新时间:2023-12-01 04:38:22 25 4
gpt4 key购买 nike

我有一个具有以下基本格式的 pandas 数据框:

tempDF = pd.DataFrame({ 'id': [12,12,12,12,45,45,45,51,51,51,51,51,51,76,76,76,91,91,91,91],
'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1,2.4,3.5,4.2,5.2,4.3,3.6,5.2,7.1,6.5,7.3],
'status': [0,1,1,2,1,1,0,1,0,1,2,0,0,1,1,0,1,0,2,2]})

我想根据“measure”中的值获取每个“status”的摘要统计信息。为此,我使用:

tempGroup = tempDF.groupby('status')
tempGroup['measure'].describe()

...在“状态”中为每个组生成了一系列摘要统计数据。然而,在我的实际数据库中,类别的数量要大得多,对于某些分析,我只想显示有限数量的类别的结果。在上面的示例中,如何仅显示状态组 1 和 2 的摘要统计信息?我尝试过使用 .loc 和其他标准方法进行切片和切 block 的各种形式,但无济于事。我已经能够使用 for 循环单独单步执行每个组,但这似乎效率很低 - 我假设必须有一种更简单的方法。任何帮助将不胜感激。提前致谢。

最佳答案

如果您只想要状态 1 和 2 的统计信息。

import pandas as pd
import numpy as np


tempDF = pd.DataFrame({ 'id': [12,12,12,12,45,45,45,51,51,51,51,51,51,76,76,76,91,91,91,91],
'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1,2.4,3.5,4.2,5.2,4.3,3.6,5.2,7.1,6.5,7.3],
'status': [0,1,1,2,1,1,0,1,0,1,2,0,0,1,1,0,1,0,2,2]})

# just show stats for 1, 2
groups = [1, 2]
tempDF.loc[tempDF.status.isin(groups)].groupby('status').describe()


Out[41]:
id measure
status
1 count 9.0000 9.0000
mean 51.0000 4.3000
std 27.3038 1.4186
min 12.0000 2.1000
25% 45.0000 3.1000
50% 51.0000 4.3000
75% 76.0000 5.2000
max 91.0000 6.8000
2 count 4.0000 4.0000
mean 61.2500 5.4500
std 37.8627 2.1486
min 12.0000 2.4000
25% 41.2500 4.8000
50% 71.0000 6.0500
75% 91.0000 6.7000
max 91.0000 7.3000

关于python - 仅显示定义组的 Pandas groupby 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31313980/

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