Python&熊猫:如何以非标准方式分组

时间:2018-04-12 02:35:31

标签: python pandas dataframe

我知道基本的熊猫功能,但我不清楚在这种情况下如何分组。

我有一个数据框,其中列出了各种水果及其特征:

fruit    x1      x2
apple    red     sweet
apple    yellow  sweet
apple    green   tart
apple    red     sweet
apple    red     sweet

我怎样才能将每种水果(苹果之后还有更多)加上这样的总和?

3个苹果:红色和甜味 1个苹果:黄色和甜的
1个苹果:绿色和酸挞

我看过groupby,尝试了一个应用函数,并查看了pandas文档,但这让我感到惊讶。

有什么想法吗?非常感谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试以下内容:

[ca]

输出如下:

df['count']=0
group_df = df.groupby(["fruit","x1","x2"])['count'].count().reset_index()

当然,您可以在此之后连接列,使其完全符合您的要求输出。

如果您想要对计数进行排序:

   fruit      x1     x2  count
0  apple   green   tart      1
1  apple     red  sweet      3
2  apple  yellow  sweet      1

答案 1 :(得分:0)

使用Counter

import pandas as pd
from collections import Counter

pd.Series(Counter(map(tuple, df.values)))

apple  green   tart     1
       red     sweet    3
       yellow  sweet    1
dtype: int64

pd.factorizenp.bincount

i, r = pd.factorize(list(map(tuple, df.values)))
pd.Series(dict(zip(r, np.bincount(i))))

apple  green   tart     1
       red     sweet    3
       yellow  sweet    1
dtype: int64