我知道基本的熊猫功能,但我不清楚在这种情况下如何分组。
我有一个数据框,其中列出了各种水果及其特征:
fruit x1 x2
apple red sweet
apple yellow sweet
apple green tart
apple red sweet
apple red sweet
我怎样才能将每种水果(苹果之后还有更多)加上这样的总和?
3个苹果:红色和甜味 1个苹果:黄色和甜的我看过groupby,尝试了一个应用函数,并查看了pandas文档,但这让我感到惊讶。
有什么想法吗?非常感谢。
答案 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.factorize
和np.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