python - 数据框聚合到数据框

标签 python pandas

根据以下数据帧聚合,我想给出“传统DataFrame格式。看起来很容易解决,但我很难得到它。

数据样本

import pandas as pd
df = pd.DataFrame({'col1':['A','A','A','A','B','B','B','A','C','C','C'],'col2':['foo','zzz','bar','foo','car','car','dog','bar','bar','zzz','bar']})
df

   col1 col2
0   A   foo
1   A   zzz
2   A   bar
3   A   foo
4   B   car
5   B   car
6   B   dog
7   A   bar
8   C   bar
9   C   zzz
10  C   bar

输出

df.groupby(['col1','col2'])['col1'].agg({'Frequency':'count'})

    Frequency
col1    col2    
A       bar  2
        foo  2
        zzz  1
B       car  2
        dog  1
C       bar  2
        zzz  1

期望的输出

col1    col2   freq 
A       bar    2
A       foo    2
A       zzz    1
B       car    2
B       dog    1
C       bar    2
C       zzz    1

最佳答案

解决方案 1:

尝试使用以下命令重置 groupby 上的索引:

df.groupby(['col1','col2'])['col1'].agg({'Frequency':'count'}).reset_index()

  col1 col2  Frequency
0    A  bar          2
1    A  foo          2
2    A  zzz          1
3    B  car          2
4    B  dog          1
5    C  bar          2
6    C  zzz          1

解决方案 2:

创建groupby时使用as_index=False:

df.groupby(['col1','col2'], as_index=False)['col1'].agg({'Frequency':'count'})

  col1 col2  Frequency
0    A  bar          2
1    A  foo          2
2    A  zzz          1
3    B  car          2
4    B  dog          1
5    C  bar          2
6    C  zzz          1

关于python - 数据框聚合到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49736045/

相关文章:

Python:多维数组的元素差异

python - 使用 pd.read_csv 时无法删除 header

python - 打印功能来自哪个模块

python - pandas:使用索引中的唯一值对矩阵进行分组和转置并填充空值

java - 关于使用哪种语言的建议

python pandas - 根据包含字符串列表的 B 列更改 A 列中的值

pandas - 需要全部提取pandas dataframe中括号内的内容

python - 检查字符串列最后一个字符是否是 Pandas 中的数字

python - 从字典创建 1 行数据框,包含三列并将变量附加到第一列

javascript - AES - python 中的 Pycrypto 加密和 Node.js 中的 Crypto 解密