如何使用Pandas groupby获取计数?

时间:2017-01-15 01:14:57

标签: pandas group-by

我想按列值对行进行分组。

这就是数据框的样子:

Id       model     c3    c4    c5   c6 ...etc
174_ap   c:143     ar    ...
174_dp   c:143     rv    ...
777_ap   c:177     gb    ...
777_dp   c:177     ch    ...

每辆车有2行,ap是签入时的第一张支票,结帐时是支票。由于模型只在我想加入的行上重复,我尝试用它加入:

df = df.groupby('model')

但是由此产生的df看起来与前一个完全相同,没有任何改变。

我在这里做错了什么?

PS。:每辆车和支票的列数各不相同。

2 个答案:

答案 0 :(得分:0)

似乎只有model重复;所以通过 分组 ,如果打算获取计数,groupby确实有效。

enter image description here

答案 1 :(得分:0)

我拆分Id,使用拆分设置索引并取消堆栈。

idx = df.Id.str.split('_', expand=True).values.T.tolist()
df.drop('Id', 1).set_index(idx).stack().unstack([1, 2])

        ap                 dp            
     model  c3  c4  c5  model  c3  c4  c5
174  c:143  ar  ar  ar  c:143  rv  rv  rv
777  c:177  gb  gb  gb  c:177  ch  ch  ch