为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫直方图:从数据中提取列和分组依据

熊猫直方图:从数据中提取列和分组依据

白衣非少年 2021-05-18 17:02:51
我有一个数据框,正在使用column和by熊猫的hist()方法查看数据子集的直方图,如下所示:ax = df.hist(column='activity_count', by='activity_month')(然后我继续绘制此信息)。我试图确定如何以编程方式提取两段数据:当我在轴上循环时,具有特定值'activity_month'以及'activity_month'的记录数:for i,x in enumerate(ax):`     print("the value of a is", a)   print("the number of rows with value of a", b)这样我会得到:January 1002February 4305etc现在,我可以轻松获得“ activity_month”唯一值的列表,以及具有给定的activity_month等于该值的行数的计数,a="January"len(df[df["activity_month"]=a])但我想针对i,x的特定迭代在循环内执行此操作。如何在每次迭代中获取“ x”内子集数据的句柄,以便查看迭代中“ activity_month”的值以及具有该值的行数?
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

这是一个简短的示例数据框:


import pandas as pd


df = pd.DataFrame([['January',19],['March',6],['January',24],['November',83],['February',23],

                    ['November',4],['February',98],['January',44],['October',47],['January',4],

                    ['April',8],['March',21],['April',41],['June',34],['March',63]],

                    columns=['activity_month','activity_count'])

产量:


   activity_month  activity_count

0         January              19

1           March               6

2         January              24

3        November              83

4        February              23

5        November               4

6        February              98

7         January              44

8         October              47

9         January               4

10          April               8

11          March              21

12          April              41

13           June              34

14          March              63

如果您希望从中获得每个组的值的总和df.groupby('activity_month'),则可以这样做:


df.groupby('activity_month')['activity_count'].sum()

给出:


activity_month

April        49

February    121

January      91

June         34

March        90

November     87

October      47

Name: activity_count, dtype: int64

要获取与给定组相对应的行数:


df.groupby('activity_month')['activity_count'].agg('count')

给出:


activity_month

April       2

February    2

January     4

June        1

March       3

November    2

October     1

Name: activity_count, dtype: int64

重新阅读您的问题后,我确信您没有以最有效的方式解决此问题。我强烈建议您不要显式地遍历使用创建的轴df.hist(),特别是当此信息可以快速(直接)从其df自身访问时。


查看完整回答
反对 回复 2021-05-25
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信