首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据的值存储在一个列表中

如何将数据的值存储在一个列表中
EN

Stack Overflow用户
提问于 2020-10-15 08:58:21
回答 3查看 242关注 0票数 4

我有以下名为table的熊猫数据表,希望将其所有单元格值存储在一个列表中:

代码语言:javascript
复制
table = pd.DataFrame({'col-1':[2,7,13,16,23,26,27,29], 'col-2':[541,3,0,15,329,525,6,28], 'col-3':[0,571,0,9,9,0,62,0]}, index=['row-1','row-2','row-3','row-4','row-5','row-6','row-7','row-8'])

最后的输出应该如下所示:

代码语言:javascript
复制
my_list = [2,7,13,16,23,26,27,29,541,3,0,15,329,525,6,28,0,571,0,9,9,0,62,0]

如果你能教我最有效的方法来完成这个任务,我会很感激的。干杯。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-15 09:51:04

一个可能的解决方案是使用melt()

代码语言:javascript
复制
my_list = table.melt()['value'].tolist()
print(my_list)

或者,你也可以尝试@DavidK对to_numpy()的回答的变化,这是熊猫的推荐,也是在问题中讨论的。

代码语言:javascript
复制
my_list = df.T.to_numpy().ravel().tolist()
print(my_list)
代码语言:javascript
复制
my_list = df.T.to_numpy().reshape(-1).tolist()
print(my_list)

输出在任何情况下都是

代码语言:javascript
复制
[2, 7, 13, 16, 23, 26, 27, 29, 541, 3, 0, 15, 329, 525, 6, 28, 0, 571, 0, 9, 9, 0, 62, 0]
票数 0
EN

Stack Overflow用户

发布于 2020-10-15 08:59:52

为了获得更好的性能,使用了numpy方法numpy.ravel和转置数据:

代码语言:javascript
复制
import numpy as np

L = np.ravel(table.T).tolist()

使用DataFrame.unstack的想法也是可能的,但是如果巨大的df性能更差的话:

代码语言:javascript
复制
L = table.unstack().tolist()
代码语言:javascript
复制
print (L)
[2, 7, 13, 16, 23, 26, 27, 29, 541, 3, 0, 15, 329, 525, 6, 28, 0, 571, 0, 9, 9, 0, 62, 0]
票数 3
EN

Stack Overflow用户

发布于 2020-10-15 09:16:15

你可以用:

代码语言:javascript
复制
my_list = table.T.values.flatten().tolist()

tanspose .T用于获得与您的示例相同的顺序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64368127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档