首页 > 解决方案 > 用于将 3d 数组展平为 pandas df 的内置函数?

问题描述

我有一个如下的numpy数组:

import pandas as pd
import numpy as np
np.random.seed(10)
data = np.random.randint(0, 10, size=(1000, 4, 3))

我希望能够将此数据展平为具有 12 列和 1000 行的 df。

我所做的是:

df = pd.DataFrame( index=range(data.shape[0]))

for i in range(data.shape[1]):
    for j in range(data.shape[2]):
        df[str(i)+'_'+str(j)] = pd.DataFrame((data[:,i,j]))

通过这样做,我将能够将此 3d 数据展平为 2d pandas df。

-除了我所做的之外,有谁知道我可以使用的任何简洁的内置功能?

标签: pythonpandas

解决方案


只需将数组重塑为(-1, 12)并创建数据框

 pd.DataFrame(data.reshape(-1, 12))

推荐阅读