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