Dictionary 从目录创建目录列表

Dictionary 从目录创建目录列表,dictionary,pandas,Dictionary,Pandas,我有一个表格的数据框 0 x y z 1 .5 .1 4 2 .6 .2 5 我想把它转换成前两个col的dict列表,即 [{'x':0.5,'y':0.1},{'x':0.6,'y':0.2}….] 我可以写一个循环,然后用愚蠢的方式来做,有没有更好更快的方法呢?你可以用它。这允许您以系列的形式迭代行,而不是dicts,但这是非常类似的(例如hasiteritems(),\uu getitem\uuuuuuu等) 如果必须使用dict,则可以使

我有一个表格的数据框

0   x     y    z
1   .5   .1    4
2   .6   .2    5
我想把它转换成前两个col的dict列表,即 [{'x':0.5,'y':0.1},{'x':0.6,'y':0.2}….]

我可以写一个循环,然后用愚蠢的方式来做,有没有更好更快的方法呢?

你可以用它。这允许您以
系列
的形式迭代行,而不是dicts,但这是非常类似的(例如has
iteritems()
\uu getitem\uuuuuuu
等)

如果必须使用dict,则可以使用
to_dict()
方法轻松地将每个
系列
转换为dict

例如:

list_of_dicts = list( row.to_dict() for key, row in df.iterrows() )
你可以使用这个方法。让
yourdata.csv
成为.csv格式的数据:

df = pd.read_csv('yourdata.csv')

d = df[['x','y']].to_dict('index').values()
应该有用。它返回:

[{'y': 0.1, 'x': 0.5}, {'y': 0.2, 'x': 0.6}]
使用
orient=records
一起记录(orient='records')
,速度更快

In [2]: df[['x', 'y']].to_dict(orient='records')
Out[2]:
[{'x': 0.5, 'y': 0.1}, {'x': 0.6, 'y': 0.2}]

计时

In [8]: df.shape
Out[8]: (10000, 4)

In [9]: %timeit df[['x', 'y']].to_dict(orient='records')
10 loops, best of 3: 68.4 ms per loop

In [10]: %timeit df[['x','y']].to_dict('index').values()
1 loop, best of 3: 570 ms per loop 

In [11]: %timeit list(row.to_dict() for key, row in df[['x', 'y']].iterrows())
1 loop, best of 3: 575 ms per loop

@甘尼什雷迪,当然。我添加了它。这也给了我一个错误:tuple对象没有属性_dict@ganeshreddy,啊,修复了。我得到了'valueError:outtype index not Understanding'这个解决方案是否保留了顺序或行?我想这是一个很好的选择。@shx2我想是的,因为'index'arg用作{index->{column->value}@ganeshredy对我来说很有效,我刚刚用
pd.read\u csv('yourdata.csv')
导入了您的数据帧。