【发布时间】:2021-10-06 02:09:33
【问题描述】:
我有一个如下所示的数据集:
old_data = [[0,0,0,X],[1,0,0,A],[2,0,0,HJ],[3,0,0,X],[4,0,0,A],[5,0,0,K],[6,0,0,K]
我希望能够将列表排序到他们自己的单独列表中,如下所示:
X_list = [[0,0,0,X],[3,0,0,X]]
A_list = [[1,0,0,A],[4,0,0,A]]
HJ_list = [[2,0,0,HJ]]
K_list = [[5,0,0,K],[6,0,0,K]]
我尝试使用 pandas 中的一些功能和堆栈上的其他一些解决方案,但是,它们都将特定值分组到一个列表中,这最终会删除列表中的所有其他数据。此外,将有 X 个列表 [3],因此需要生成 X 个列表。我之前尝试的是这样的:
values = sorted(set(map(lambda x: x[3], old_data)))
newlist = [[y[3] for y in old_data if y[3] == x] for x in values]
哪个输出,如下:
newlist = [[X,X],[A,A],[HG],[K,K]]
如果有办法重新排列上面的代码,也许可以保留所有数据并使用 for 循环创建 X 数量的列表?我不太了解上面的代码,所以我不知道该怎么做。否则,可能以某种方式使用熊猫?
【问题讨论】:
标签: python pandas list dataframe pandas-groupby