数据帧转换 - 如何节省内存?

时间:2018-03-19 19:15:27

标签: python pandas dataframe

我有这样的数据框:

import pandas as pd

data = [{'id': 'Jones', 'tf': [(0, 0.5), (1,2.0)]},
        {'id': 'Alpha', 'tf': [(1,2.0)]},
        {'id': 'Blue', 'tf': [(2,0.1),(1,0.2)]}]
df = pd.DataFrame(data)

` 我希望以这种形式拥有数据框:

'id', 'var', 'value'
Jones, 0, 0.5
Jones, 1, 2.0
Alpha, 1, 2.0
Blue, 2, 0.1
Blue, 1, 0.2

我可以分两步完成:

i)不需要形成:id,0,1,2 - columns

id   ,0  ,1  ,2
Jones,0.5,NaN,2.0 
Alpha,NaN,2.0,NaN
Blue ,0.2,NaN,0.1

ii)用id

融化

但步骤i)存在问题。我的数据集相当稀疏,因此对于NaN, unfsting会占用大量内存

我正在寻找可以避免被取消的pandastic解决方案,并且它具有内存效率。

2 个答案:

答案 0 :(得分:1)

应该快点

stop
spot
tops
ostp
opts
post
pots

答案 1 :(得分:0)

这是循环的方式。它不会很快,但需要的内存最少。

我使用query.endBefore进行快速的基于整数的查找,因此如果您的数据框中有其他列,则需要小心。

.iat