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

Python 访问字典中包含的特定数据帧列的最佳方式是什么?,python,pandas,dataframe,data-structures,Python,Pandas,Dataframe,Data Structures,我现在有一本由1000个数据帧组成的字典。我想访问这些数据帧,以便对这些数据帧的特定列进行更改或排序。我可以直接从字典中访问它们的列,还是必须先从字典中提取所有数据帧,然后逐个访问它们?您可以通过遍历字典的键或直接遍历值(即数据帧),在列表理解或循环中直接访问它们 例如: frames = {i:pd.DataFrame(np.random.random((5,2)), columns=['col1','col2']) for i in range(5)} frames是一个包含5个数据帧的字

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

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

例如

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()]

然后,当您再次访问
帧[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
尽管如此,这不是我要做的。我会将所有帧与每个数据帧的某种标识符连接在一起,然后对主数据帧进行操作。但你试图实现的目标是可能的,正如我刚才概述的那样

>>> 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