访问词典中包含的数据帧的特定列的最佳方法是什么?

时间:2018-08-02 20:19:05

标签: python pandas dataframe data-structures

我现在有一个包含1000个数据帧的字典。我想访问以进行更改或对这些数据框的特定列进行排序。我可以直接从字典访问它们的列,还是必须先从字典中提取所有数据帧,然后一个个地访问它们?

1 个答案:

答案 0 :(得分:1)

您可以在列表理解或循环中直接访问它们,方法是遍历字典的键或直接遍历值(它们是数据帧)。

例如

frames = {i:pd.DataFrame(np.random.random((5,2)), columns=['col1','col2']) for i in range(5)}

frames是一个包含5个数据帧的字典,每个字典有2列。例如,

>>> frames[0]
       col1      col2
0  0.100050  0.710130
1  0.834157  0.077837
2  0.024547  0.583344
3  0.328716  0.929574
4  0.948498  0.612750

显示第一个数据帧

要按第一列对每个对象进行排序,只需执行以下操作:

[frames[df].sort_values('col1', inplace=True) for df in frames.keys()]

[i.sort_values('col1', inplace=True) for i in frames.values()]

然后,当您再次访问frames[0]时,它将进行排序:

>>> frames[0]
       col1      col2
2  0.024547  0.583344
0  0.100050  0.710130
3  0.328716  0.929574
1  0.834157  0.077837
4  0.948498  0.612750

所有这些,这不是我要做的方式。我将所有框架与每个数据框架的某种标识符连接在一起,然后对主数据框架进行操作。但是,您尝试实现的目标可以通过我刚才概述的方式来实现。