python - Pandas groupby 两列然后获取值的字典

标签 python pandas dataframe group-by

我有一个 Pandas 数据框:

banned_titles = 
TitleId  RelatedTitleId
0    89989           32598
1    89989         3085083
2    95281         3085083

当我按如下方式应用 groupby 时

In [84]: banned_titles.groupby('TitleId').groups
Out[84]: {89989: [0, 1], 95281: [2]}

这太近了,但不是我想要的。

我想要的是:

{89989: [32598, 3085083], 95281: [3085083]}

有办法吗?

最佳答案

试试这个:

In [8]: x.groupby('TitleId')['RelatedTitleId'].apply(lambda x: x.tolist()).to_dict()
Out[8]: {89989: [32598, 3085083], 95281: [3085083]}

或作为一系列列表:

In [10]: x.groupby('TitleId')['RelatedTitleId'].apply(lambda x: x.tolist())
Out[10]:
TitleId
89989    [32598, 3085083]
95281           [3085083]
Name: RelatedTitleId, dtype: object

数据:

In [9]: x
Out[9]:
   TitleId  RelatedTitleId
0    89989           32598
1    89989         3085083
2    95281         3085083

关于python - Pandas groupby 两列然后获取值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37690092/

相关文章:

r - 满足条件时如何更新当前行的下一行

python - 无法弄清楚这段代码的作用

'Try until no exception is raised' 的 Python 习语

python - pandas dataframe 过滤器为所有行返回 True。如何?

python - pandas 获取包含值的列的名称

python - 将包含不同长度列表的字典转换为 2 列数据帧

r - 根据另一列的值删除一列中的重复信息

python - python 和虚拟环境

python - 如何从python中的unicode列表中删除特定元素

python - pandas groupby 并聚合两列以获得各自的总数,然后计算比率 - 总结摘要