使用'groupby'方法获取Dataframe的所有列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用'groupby'方法获取Dataframe的所有列相关的知识,希望对你有一定的参考价值。

在应用Pandas的groupby方法后,无法获取Dataframe的所有列

我有一个示例Dataframe如下。

  col1 col2        day col4
0   a1   b1     monday   c1
1   a2   b2    tuesday   c2
2   a3   b3  wednesday   c3
3   a1   b1     monday   c5

这里'a1 b1星期一'重复两次。所以在groupby之后输出应该是:

col1    col2          day     col4  count
a1        b1       monday      c1     2
a2        b2      tuesday      c2     1
a3        b3    wednesday      c3     1

我尝试使用df.groupby(['col1','day'],sort=False).size().reset_index(name='Count')

df.groupby(['col1','day']).transform('count')

并且输出总是如此

col1    day         count
a1  monday        2
a2  tuesday       1
a3  wednesday     1

我的原始数据有14列,将所有列名保留在groupby语句中是没有意义的。是否有更好的pythonic方法来实现这一目标?

答案

第一次groupbytransform制作你的count专栏。

然后使用drop_duplicates删除重复的行:

df['count'] = df.groupby(['col1','day'],sort=False)['col1'].transform('size')
df.drop_duplicates(['col1', 'day'], inplace=True)

print(df)
  col1 col2        day col4  count
0   a1   b1     monday   c1      2
1   a2   b2    tuesday   c2      1
2   a3   b3  wednesday   c3      1

以上是关于使用'groupby'方法获取Dataframe的所有列的主要内容,如果未能解决你的问题,请参考以下文章

group by 获取最大的一组 count(1) 值

nodejs中使用$.get 获取html出现中文乱码

Python 中 dataframe.groupby按多条件分组怎么做?

数据分析——python,pandas:DataFrame对象(groupby函数的使用)排序

按指定规则统计list中数据,groupby用法

dataframegroupby怎么变为dataframe