首页 > 解决方案 > 垂直整合超过 1500 列的数据表

问题描述

我有一个数据表,其中包含大约 1700 列和 100 行数据,带有唯一标识符。它是调查数据,一个组织的每个员工都回答了相同的 9 个问题,但它被编译成每个组织的一行数据。python/pandas 中是否有一种方法可以垂直整合这些数据,而不是它已经在 x 轴上的细长格式?我目前正在剪切和粘贴。

标签: pythonpandasnumpydataframespatial-data-frame

解决方案


您可以reshape使用适当的公司对基础 numpy 数组和重新索引:

# sample data, assuming index is the company
df = pd.DataFrame(np.arange(36).reshape(2,-1))

# new index
idx = df.index.repeat(df.shape[1]//9)

# new data:
new_df = pd.DataFrame(df.values.reshape(-1,9), index=idx)

输出:

    0   1   2   3   4   5   6   7   8
0   0   1   2   3   4   5   6   7   8
0   9  10  11  12  13  14  15  16  17
1  18  19  20  21  22  23  24  25  26
1  27  28  29  30  31  32  33  34  35

推荐阅读