python - 给定一个列表列表,如何在没有 pandas 的情况下使用 python 获得一组像 output_1 这样的列表?
问题描述
此代码对 N×2 数组进行分组,
df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})
df.groupby('a')['b'].apply(list)
按第一列中的值
[['A' '1']
['A' '2']
['B' '5']
['B' '5']
['B' '4']
['C' '6']]
并得到这个结果(output_1)
a
A [1, 2]
B [5, 5, 4]
C [6]
Name: b, dtype: object
我正在尝试在没有熊猫的情况下完成这项工作
from itertools import groupby
from operator import itemgetter
list(groupby(ds,key = itemgetter(0)))
看来我成功地分组了数据数组,
[('A', <itertools._grouper at 0x121f779e8>),
('B', <itertools._grouper at 0x121f77588>),
('C', <itertools._grouper at 0x121f77400>)]
现在,我被困在获取这些元素上。
list(list(groupby(ds,key = itemgetter(0)))[0][1])
给了我一个空列表[]
python - 如何在没有熊猫的情况下使用python获得一组像output_1这样的列表?
解决方案
正如您从第一次尝试中看到的groupby
那样,为每个元素生成键和迭代器,将键作为其每个项目。
您可以使用列表推导提取数据:
[(key, [elem[1] for elem in it]) for key, it in groupby(ds,key = itemgetter(0))]
或者,作为字典:
{key: [elem[1] for elem in it] for key, it in groupby(ds, key=itemgetter(0))}
推荐阅读
- python - 无法在 Google AI 平台 (CMLE) 上安装 pycocotools
- javascript - React-materialize-css Modals 无法正常工作,因为它无法读取 M 的 Modal 类
- python - 在两个 Rdd 上使用联合后,无法将 Pyspark 作业结果保存到单个文本文件
- linux - Linux 内核 cfs_tasks
- python - python上的正则表达式将字符串吐入特定序列
- xslt - XSLT 2.0 获得不同的节点名称并保持顺序
- postgresql - 如何在postgresql的以下条件下从三个表中检索信息
- android - 将片段添加到视图
- mysql - 在 INNER JOIN 查询中使用别名?
- scala - 如何将 keepAlive 事件添加到 SSE 频道