合并Pandas数据帧的所有列

2024-07-05 11:40:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多熊猫股票数据帧。它们都有以下形式:

df_asset = pd.DataFrame(data=np.random.random((5,4)), index=[0, 1, 2, 3, 4], columns=['Open', 'High', 'Low', 'Close'])

我已将资产名称及其数据帧存储在字典中:

^{pr2}$

我想连接所有这些数据帧,以创建一个多索引数据帧的形式:

df = pd.DataFrame(data=np.random.random((15,4)), index=pd.MultiIndex.from_product([list(range(1,6)), ['AAPL', 'CSCO', 'AMZN']]), columns=['Open', 'High', 'Low', 'Close'])

做这件事最优雅(希望是最有效)的方法是什么?在

谢谢你的帮助

杰克


Tags: columns数据dataframedfclosedataindexnp
1条回答
网友
1楼 · 发布于 2024-07-05 11:40:33

您可以使用

df = pd.concat(dfs)

df将使用dict键作为多索引级别。在


例如

^{pr2}$

要按照您在问题中发布的顺序获取索引级别,请使用^{}后跟^{}

In [112]: df.swaplevel().sort_index()
Out[112]: 
            Open      High       Low     Close
0 AAPL  0.100276  0.769425  0.060993  0.831183
  CSCO  0.100276  0.769425  0.060993  0.831183
1 AAPL  0.251792  0.336571  0.976984  0.237506
  CSCO  0.251792  0.336571  0.976984  0.237506
2 AAPL  0.611914  0.029576  0.329525  0.203794
  CSCO  0.611914  0.029576  0.329525  0.203794
3 AAPL  0.527770  0.723468  0.887708  0.231006
  CSCO  0.527770  0.723468  0.887708  0.231006
4 AAPL  0.965805  0.508156  0.260214  0.063260
  CSCO  0.965805  0.508156  0.260214  0.063260

相关问题 更多 >