我正在尝试添加浮点值,例如[[(1,0.44),(2,0.5),(3,0.1)],[(2,0.63),(1,0.85),(3,0.11)], […]
到一个看起来像从元组的第一个值构建的矩阵的Pandas数据框
df = 1 2 3
1 0.44 0.5 0.1
2 0.85 0.63 0.11
3……
我尝试了这个:
for key, value in enumerate(outer_list):
for tuplevalue in value:
df.ix[key][tuplevalue[0]] = tuplevalue[1]
问题是我的NxN-Matrix包含大约10000×10000个元素,因此我的方法花了很长时间.还有另一种可能加快速度吗?
解决方法:
使用列表推导首先对数据进行排序和提取.然后根据排序和清理后的数据创建数据框.
data = [[(1, 0.44), (2, 0.50), (3, 0.10)],
[(2, 0.63), (1, 0.85), (3, 0.11)]]
# First, sort each row.
_ = [row.sort() for row in data]
# Then extract the second element of each tuple.
new_data = [[t[1] for t in row] for row in data]
# Now create a dataframe from your data.
>>> pd.DataFrame(new_data)
0 1 2
0 0.44 0.50 0.10
1 0.85 0.63 0.11
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。