通过不同的列计算数据框和组中的不同值的最佳方法是什么?

时间:2016-11-27 20:30:21

标签: python pandas

我有一个简单的Dataframe,如下所示:

    DRUNK_DR    state
11418   0   Indiana
2129    0   California
17876   0   Nebraska
26033   0   Tennessee
25278   0   South Carolina
10565   0   Illinois
30017   0   Vermont
19079   1   New Mexico
21159   0   North Carolina
22620   0   Oklahoma

DRUNK_DR可以是0 1 2 3

(drunk['DRUNK_DR'].unique()
array([1, 0, 2, 3]))

我想得到州的明显统计和分组。

示例:

Alabama
0 12121
1 234
2 33
3 9

这样做的最佳方式是什么?我正在尝试以下方法:

drunk.groupby(['state', 'DRUNK_DR']).count()

不起作用:

state   DRUNK_DR
Alabama 0
        1
        2

1 个答案:

答案 0 :(得分:4)

您需要value_counts()

df.groupby('state').DRUNK_DR.value_counts()

#state           DRUNK_DR
#California      0           1
#Illinois        0           1
#Indiana         0           1
#Nebraska        0           1
#New Mexico      1           1
#North Carolina  0           1
#Oklahoma        0           1
#South Carolina  0           1
#Tennessee       0           1
#Vermont         0           1
#Name: DRUNK_DR, dtype: int64