【问题标题】:Concatenate two pandas dataframes on a new axis在新轴上连接两个熊猫数据框
【发布时间】:2020-11-15 12:31:49
【问题描述】:
我有两个形状为 (d, w) 的 pandas 数据框,我需要将这两个数据框连接成一个形状为 (2, d, w)(甚至是 (d, 2, w))的新数据框。一种天真的方法是通过creating a zero-filled dataframe 使用正确的大小,然后替换这些值。但我想知道是否有更好的方法来做到这一点。 pandas.concatenate 似乎无法添加新轴。有没有其他的 pandas 功能呢?
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
DataFrame 本质上是二维的。可以将Panels 用于 3d 数据,但它们已被弃用,此时不应使用。 Pandas 文档建议现在为此使用xarray。
使用 xarray 从 DataFrames 构建一个 3d 数组如下所示:
import pandas as pd
import xarray as xr
df1 = pd.DataFrame([[1,2],[3,4]])
df2 = pd.DataFrame([[5,6],[7,8]])
da = xr.DataArray([df1, df2])
如果对您更有效,您还可以使用 MultiIndex 获取二维 DataFrame 的多维索引。