【发布时间】:2019-06-27 20:19:19
【问题描述】:
我有一个由列表组成的字典列表(请参阅下面的示例代码)。我想做的是在不使用 for 循环的情况下用这些创建一个数据框。任何其他更快的方法都会很好。
ls = [ dict[lists], dict[lists], ... ]
最初我只是遍历字典列表并在列表理解中调用数据框对象,然后将它们连接起来。请参阅下面的代码。但这对于我拥有的字典数量来说相当慢。
temp_data_m1 = [{'x': np.random.rand(9).tolist(), 'y': np.random.rand(9).tolist(), 'z': np.random.rand(9).tolist()}]*50
data_reshuffled1 = pd.concat([pd.DataFrame(dict_) for dict_ in temp_data_m1]).reset_index()
有没有办法在不使用 for 循环的情况下以更快的方式实现这一目标?
【问题讨论】:
-
你是说不想循环,因为你认为不循环会更快?
-
您是在为每个连续的字典添加更多行还是更多列?最终的 df 是什么样的?
-
@Jacob 我认为有更好更快的功能来做到这一点
-
@run-out 我只为每个连续的字典添加更多行
-
如果您必须访问集合中的每个项目,假设您不打算使用低级别的
iter和next功能,则必须循环。 (我在“循环”的定义中包含了 list comp 和 while 循环。)
标签: python python-3.x pandas dataframe dictionary