Pandas GroupBy 列以获取“模式”

马克·K

作为 beloe 的数据集,我想按“名称”和“周”聚合以获得它们的模式。

我尝试了两种方法,但都没有奏效:

import pandas as pd
from io import StringIO

csvfile = StringIO("""
Name    Weeks   Sales
Amelia  202106  57
Amelia  202105  61
Amelia  202106  59
Amelia  202103  49
Amelia  202105  87
Amelia  202104  95
Elijah  202106  49
Elijah  202105  40
Elijah  202106  57
Elijah  202103  97
Elijah  202105  67
Elijah  202104  89
James   202106  66
James   202105  92
James   202106  57
James   202103  82
James   202105  53
James   202104  71""")

df = pd.read_csv(csvfile, sep = '\t', engine='python')

df['Weeks'] = df['Weeks'].astype(str)

# tried both but neither worked:
mode = df.groupby(['Name', 'Weeks']).agg({'Sales': ['mode']})
# or 
mode = df.groupby(df['Name', 'Weeks'])[['Sales']].mode()

什么是正确的方法?谢谢你。

NK03

尝试:

from statistics import mode
mode = df.groupby(['Name', 'Weeks'])['Sales'].apply(mode)
Name    Weeks 
Amelia  202103    49
        202104    95
        202105    61
        202106    57
Elijah  202103    97
        202104    89
        202105    40
        202106    49
James   202103    82
        202104    71
        202105    92
        202106    66

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章