如何将数据框总结为与ID结合在一起的列表?

我有一个买家(buyerid),该买家可以购买几种不同的汽车(carid)。我想列出他买了哪些车。在这里,我想总结每个买家的所有汽车,并将它们保存为列表。

例如,买家1购买了ID为1和ID 2的汽车。此列表现在应包含[1,2]我该如何列出清单?

如果我调用method,.values.tolist()那么我将每一行列为列表,但是我希望买方对carid进行汇总。

import pandas as pd
d = {'Buyerid': [1,1,2,2,3,3,3,4,5,5,5],
     'Carid': [1,2,3,4,4,1,2,4,1,3,5],
     'Carid2': [1,2,3,4,4,1,2,4,1,3,5]}

df = pd.DataFrame(data=d)

print(df)

ls = df.values.tolist()
print(ls)

    Buyerid  Carid  Carid2
0         1      1       1
1         1      2       2
2         2      3       3
3         2      4       4
4         3      4       4
5         3      1       1
6         3      2       2
7         4      4       4
8         5      1       1
9         5      3       3
10        5      5       5

[[1, 1, 1], [1, 2, 2], [2, 3, 3], [2, 4, 4], [3, 4, 4], [3, 1, 1], [3, 2, 2], [4, 4, 4], [5, 1, 1], [5, 3, 3], [5, 5, 5]]

# What I want as list
[[1,2],[3,4],[4,1,2],[4],[1,3,5]]
耶斯列尔

如果需要,选择要GroupBy.applynp.uniqueif顺序无关紧要的处理列

L = (df.groupby(['Buyerid'])[['Carid','Carid2']]
       .apply(lambda x: np.unique(x).tolist()).tolist())

或者,如果需要不Buyerid使用而处理所有列

L  = (df.set_index('Buyerid')
        .groupby('Buyerid')
        .apply(lambda x: np.unique(x).tolist())
        .tolist())

print (L)
[[1, 2], [3, 4], [1, 2, 4], [4], [1, 3, 5]]

如果订购很重要,请使用DataFrame.melt以下方法对未选中的机智进行重复DataFrame.drop_duplicates

L1 = (df.melt('Buyerid')
        .drop_duplicates(['Buyerid','value'])
        .groupby('Buyerid')['value']
        .agg(list)
        .tolist())
print (L1)

[[1, 2], [3, 4], [4, 1, 2], [4], [1, 3, 5]]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将两个数据框与R中的项目数量结合在一起?

如何将Python数据框的信息输出与唯一计数列表结合在一起

R:如何将几个数据集结合在一起

如何将2张纸与基于单个值的列表结合在一起?

如何将架构组件与Android上的数据绑定结合在一起?

对于R中的文本挖掘,如何将DocumentTermMatrix与原始数据帧结合在一起?

如何将我的表单ID变量与.val()声明结合在一起?

如何将typedef的结构与实例创建结合在一起?

如何将“最终形式计算”与“最终形式数组”结合在一起

如何将原位转换和复制转换结合在一起?

如何将5个以上的PDF与imagemagick转换结合在一起?

如何将聚合查询与不同联接结合在一起?

如何将python asyncio与线程结合在一起?

如何将Bash的流程替换与HERE文档结合在一起?

如何将PrettyPrintingJsonGeneratorDecorator和MaskingJsonGeneratorDecorator结合在一起?

如何将EventEmitter与动态组件结合在一起?

如何将back_inserter与转换结合在一起,C ++

如何将Axios调用循环与等待功能结合在一起?

如何将时基轮询与等待的任务结合在一起

如何将分组的输入与对齐的表单结合在一起?

如何将文字信息与系统信息结合在一起?

如何将RequireJS路径和require-css结合在一起?

如何将输入与字符串结合在一起?

如何将.toggleClass()与.appendTo()结合在一起?

如何将这两个查询结合在一起?(MySQL)

如何将列与R中的条件结合在一起?

如何将DataTables与其他匹配器结合在一起?

如何将NavigationDrawerPageSlidingTabStrip与StickyListHeaders库结合在一起?

如何将“ IF FOR批处理”与“ FOR DELIMS批处理”结合在一起?