微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

高效的熊猫数据框插入

我正在尝试添加浮点值,例如[[(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 举报,一经查实,本站将立刻删除。

相关推荐