Python 按行数将行堆叠到列中的函数?

Python 按行数将行堆叠到列中的函数?,python,pandas,dataframe,Python,Pandas,Dataframe,假设我有异构数据帧: a b c d 1 1 2 3 4 2 5 6 7 8 3 9 10 11 12 4 13 14 15 16 我想像这样堆叠行: a b c d 1 1,5,8,13 2,6,10,14 3,7,11,15 4,8,12,16 等等 grouby等的所有引用似乎都需要一些分组功能,我只想将x行放入列中,而不管它们的内容如何。每一行都有一个时间

假设我有异构数据帧:

     a  b  c  d
1    1  2  3  4
2    5  6  7  8 
3    9  10 11 12
4    13 14 15 16
我想像这样堆叠行:

     a         b          c          d
1    1,5,8,13  2,6,10,14  3,7,11,15  4,8,12,16
等等

grouby等的所有引用似乎都需要一些分组功能,我只想将x行放入列中,而不管它们的内容如何。每一行都有一个时间戳,我希望通过样本计数对值进行分组,因此我希望有一行包含x个样本行的所有值作为列

我应该得到一个数据帧,它具有x*原始列数和原始行数/x


我肯定这里缺少一些简单的方法,没有一系列循环等,如果需要将所有值连接到字符串,请使用:

df1 = df.astype(str).agg(','.join).to_frame().T
print (df1)
          a          b          c          d
0  1,5,9,13  2,6,10,14  3,7,11,15  4,8,12,16
或者,如果需要创建列表,请使用:

df2 = pd.DataFrame([[list(df[x]) for x in df]], columns=df.columns)
print (df2)
               a               b               c               d
0  [1, 5, 9, 13]  [2, 6, 10, 14]  [3, 7, 11, 15]  [4, 8, 12, 16]
如果需要带有
多索引的标量(从索引和列标签生成),请使用:


天才解决问题的方法!我在这里尝试了第二种方法,它将整个集合折叠成随机行?似乎根本没有结构all@squashler-测试数据样本中存在问题?可能是pandas版本的问题,在pandas 1.2.3中测试过。我想我不清楚我所需输出的简单性——我只想在y行后面加上x:z行,这样x行就可以得到longer@squashler-我认为在熊猫中不可能-如果您需要数据帧中一个单元格中的
df.x
中的所有数据,例如,对于
x
一个单元格
x
df3 = df.unstack().to_frame().T
print (df3)
   a            b             c             d           
   1  2  3   4  1  2   3   4  1  2   3   4  1  2   3   4
0  1  5  9  13  2  6  10  14  3  7  11  15  4  8  12  16