【发布时间】:2017-02-08 06:35:06
【问题描述】:
我正在尝试按列分组并计算另一列的值计数。
import pandas as pd
dftest = pd.DataFrame({'A':[1,1,1,1,1,1,1,1,1,2,2,2,2,2],
'Amt':[20,20,20,30,30,30,30,40, 40,10, 10, 40,40,40]})
print(dftest)
dftest 看起来像
A Amt
0 1 20
1 1 20
2 1 20
3 1 30
4 1 30
5 1 30
6 1 30
7 1 40
8 1 40
9 2 10
10 2 10
11 2 40
12 2 40
13 2 40
进行分组
grouper = dftest.groupby('A')
df_grouped = grouper['Amt'].value_counts()
给了
A Amt
1 30 4
20 3
40 2
2 40 3
10 2
Name: Amt, dtype: int64
我想要的是保留每组的前两行
另外,当我尝试 reset_index 时,我被一个错误弄糊涂了
df_grouped.reset_index()
以下错误
df_grouped.reset_index() ValueError: 无法插入 Amt,已存在
【问题讨论】:
-
如果你使用
dftest.groupby('A', as_index=False),你就不需要reset_index()
标签: python pandas dataframe data-manipulation data-science