当前位置: 首页 > 知识库问答 >
问题:

GroupBy结果到列表字典

益承颜
2023-03-14

我有一个excel工作表,看起来像这样:

Column1 Column2 Column3
0       23      1
1       5       2
1       2       3
1       19      5
2       56      1
2       22      2
3       2       4
3       14      5
4       59      1
5       44      1
5       1       2
5       87      3

我希望提取这些数据,按列1分组,然后将其添加到字典中,使其如下所示:

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

到目前为止这是我的代码

excel = pandas.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols'A,C')
myTable = excel.groupby("Column1").groups
print myTable

但是,我的输出如下所示:

{0: [0L], 1: [1L, 2L, 3L], 2: [4L, 5L], 3: [6L, 7L], 4: [8L], 5: [9L, 10L, 11L]}

谢啦!

共有2个答案

宗政权
2023-03-14

根据文档,GroupBy.groups

它的键是计算的唯一组,对应的值是属于每个组的轴标签。

如果您想要值本身,您可以groupby'Clon1',然后调用Application并传递list方法以应用于每个组。

然后,您可以根据需要将其转换为字典:

In [5]:

dict(df.groupby('Column1')['Column3'].apply(list))
Out[5]:
{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}

(注意:看看这个SO问题,为什么数字后跟L

司徒翼
2023-03-14

您可以在< code>Column1上< code>groupby,然后将< code>Column3用于< code>apply(list)并调用< code>to_dict?

In [81]: df.groupby('Column1')['Column3'].apply(list).to_dict()
Out[81]: {0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}

或者,做

In [433]: {k: list(v) for k, v in df.groupby('Column1')['Column3']}
Out[433]: {0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
 类似资料:
  • 我有一个Spark数据框,我想按一个键对元素进行分组,并将结果作为一个排序列表 目前我正在使用: 如何使列表中的项目按升序排序?

  • 我想在Python 3.6中的中将列名添加到Groupby的结果中。 我尝试了以下代码: 结果 它看起来像是一个列标题,但是尝试按名称对列进行寻址会产生异常。 我在寻找这个结果。

  • 我试图对result1和result2的值求和,但结果是未知的列result1。有人能帮忙吗?我做错了什么?

  • 问题内容: 我认为这是一个非常基本的问题,但我似乎找不到解决方案。 我有一个类似于以下内容的熊猫数据框: 它创建一个像这样的表: 我正在尝试创建一个表,该表表示该数据帧中不同值的数量。所以我的目标是这样的: 但是,我找不到正确的功能来实现这一目标。我试过了: 这将产生一个具有3行(按预期)但没有“ count”列的表。我不知道如何在该计数栏中添加。有人可以指出我正确的方向吗? 问题答案: 您可以使

  • 问题内容: CREATE TABLE logistics ( id int primary key, campaign VARCHAR(255), event_type VARCHAR (255), date_offered VARCHAR (255), date_ordered DATE, date_delivered DATE, date_recorded DATE, date_complet

  • 使用Ruby 2.0和Rails 4.0.2,我有两个表。其中一个表在第二个表的_form视图中填充选择列表集合。我需要从选择列表中获取用户选择的结果,并在另一个表字段中输入该名称值,而不是选择的ID,而是实际的单词。我想在没有连接表的情况下执行此操作。 我一直在用书籍和作者尝试一些短裙,并观看Ryan Bate的视频短裙,但没有人详细解释如何解决上述问题。我很困惑。如果我能理解这个过程,我可以在