如何创建 pandas 3d dataframe(带有示例)


您可以使用xarray模块快速创建 3D pandas DataFrame。

本教程介绍如何使用 xarray 模块函数创建以下 pandas 3D DataFrame:

 product_A product_B product_C
year quarter                                 
2021 Q1 1.624345 0.319039 50
     Q2 -0.611756 0.319039 50
     Q3 -0.528172 0.319039 50
     Q4 -1.072969 0.319039 50
2022 Q1 0.865408 -0.249370 50
     Q2 -2.301539 -0.249370 50
     Q3 1.744812 -0.249370 50
     Q4 -0.761207 -0.249370 50

示例:创建 Pandas 3D DataFrame

以下代码演示了如何使用xarrayNumPy函数创建 3D 数据集:

 import numpy as np
import xarray as xr

#make this example reproducible
n.p. random . seeds (1)

#create 3D dataset
xarray_3d = xr. Dataset (
    { " product_A ": (("year", "quarter"), np.random.randn (2,4))},
    coordinates={
        " year ": [2021, 2022],
        " quarter ": ["Q1", "Q2", "Q3", "Q4"],
        " product_B ": ("year", np. random . randn (2)),
        " product_C ": 50,
    },
)

#view 3D dataset
print (xarray_3d)

Dimensions: (year: 2, quarter: 4)
Coordinates:
  * year (year) int32 2021 2022
  * quarter (quarter) <U2 'Q1' 'Q2' 'Q3' 'Q4'
    product_B (year) float64 0.319 -0.2494
    product_C int32 50
Data variables:
    product_A (year, quarter) float64 1.624 -0.6118 -0.5282 ... 1.745 -0.7612

注意:NumPy randn()函数返回标准正态分布的示例值。

然后我们可以使用to_dataframe()函数将此数据集转换为 pandas DataFrame:

 #convert xarray to DataFrame
df_3d = xarray_3d. to_dataframe ()

#view 3D DataFrame
print (df_3d)

              product_A product_B product_C
year quarter                                 
2021 Q1 1.624345 0.319039 50
     Q2 -0.611756 0.319039 50
     Q3 -0.528172 0.319039 50
     Q4 -1.072969 0.319039 50
2022 Q1 0.865408 -0.249370 50
     Q2 -2.301539 -0.249370 50
     Q3 1.744812 -0.249370 50
     Q4 -0.761207 -0.249370 50

结果是一个 3D pandas DataFrame,其中包含三种不同产品在两个不同年份和每年四个不同季度的销售数量信息。

我们可以使用type()函数来确认这个对象确实是一个 pandas DataFrame:

 #display type of df_3d
type (df_3d)

pandas.core.frame.DataFrame

该对象确实是一个 pandas DataFrame。

其他资源

以下教程解释了如何在 pandas 中执行其他常见功能:

Pandas:如何查找列中的唯一值
Pandas:如何找到两条线之间的差异
Pandas:如何计算DataFrame中的缺失值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注