【问题标题】:vertically integrate a datasheet with a over 1500 columns垂直整合超过 1500 列的数据表
【发布时间】:2020-03-06 18:42:33
【问题描述】:

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

【问题讨论】:

  • 所以每一行由 9 个单元格组成,每个单元格代表一个员工。现在你想将你的数据重塑成 9 列,不管行数是多少?
  • 感谢您的回复,实际上它有 100 行(100 个组织),以及组织中每位员工的 1 长排 9 个调查问题。因此,如果每个组织有 24 名员工,则有 216 列包含数据的问题,如果有 100 名员工,则有 900 列等等。如果有一种方法可以垂直自动化/重组数据而不是一个长的水平行,那就是太棒了

标签: python pandas numpy dataframe spatial-data-frame


【解决方案1】:

您可以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

【讨论】:

  • 好的,谢谢,我正在慢慢了解这里发生了什么。那么你在哪里有'DataFrame',我需要在下面输入我的'z'吗?还是我需要将我的 csv 转换为数组或其他格式?感谢您的提示 z = open('/Users/test/Documents/NonProfit/NonProfit_Survey.csv', encoding="Latin-1")
猜你喜欢
  • 2012-06-01
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 2018-03-12
相关资源
最近更新 更多