【问题标题】:How to perform group by in python?如何在python中执行分组?
【发布时间】:2020-09-10 10:00:58
【问题描述】:

我需要从 excel 文件中读取数据,然后对数据执行分组。
数据结构如下:

n c
1 2
1 3
1 4
2 3
2 4
2 5
3 1
3 2
3 3 

我需要读取这些数据,然后根据 c 值生成一个字典列表。 所需的输出将是一个字典列表,其中 c 作为键,n 的值作为如下值:

[{1:[3]}, {2:[1,3]}, {3:[1,2,3]}, {4:[1,2]}, {5:[2]}]

我使用这个函数来读取数据,它工作正常:

data = pandas.read_excel("pathtofile/filename.xlsx", header=None)

【问题讨论】:

  • OT:为什么是一个字典列表,而不是一个包含所有这些键的字典?
  • 这个输出结构是另一个函数的输入。但是包含所有这些键的单个字典也可以。谢谢。

标签: python pandas list dictionary group-by


【解决方案1】:

你可以试试这个方法:

d1 = df.groupby('c')['n'].agg(list).to_dict()
res = [{k:v} for k,v in d1.items()]
print(res)

输出:

[{1: [3]}, {2: [1, 3]}, {3: [1, 2, 3]}, {4: [1, 2]}, {5: [2]}]

【讨论】:

    【解决方案2】:

    样本输出dict

    d=df.groupby('c').n.agg(list).to_dict()
    {1: [3], 2: [1, 3], 3: [1, 2, 3], 4: [1, 2], 5: [2]}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      相关资源
      最近更新 更多