Python 如何使用pandas将csv文件中的列重塑为矩阵形式

Python 如何使用pandas将csv文件中的列重塑为矩阵形式,python,pandas,Python,Pandas,我需要帮助重塑csv文件中的列(列“断开”)形状,如下所示 Axe Break 1 ww 2 ee 3 qq 4 xx 5 dd 5 gg 4 hh 6 tt 9 yy 1 uu 1 ii 2 oo 5 pp 4 mm 5 kk 5 ll 7 mm 2 bb 7 pp 0 zz 变成这样的矩阵形式 [[ww,ee,qq,xx,dd,gg,hh,tt,yy,uu], [ii,oo,pp,mm,kk,ll,mm,bb

我需要帮助重塑csv文件中的列(列“断开”)形状,如下所示

Axe Break
1   ww
2   ee
3   qq
4   xx
5   dd
5   gg
4   hh
6   tt
9   yy
1   uu
1   ii
2   oo
5   pp
4   mm
5   kk
5   ll
7   mm
2   bb
7   pp
0   zz
变成这样的矩阵形式

[[ww,ee,qq,xx,dd,gg,hh,tt,yy,uu],
 [ii,oo,pp,mm,kk,ll,mm,bb,pp,zz]]
使用熊猫

我发现一个问题看起来像我想问的,但我觉得这个问题和我想问的有点不同

我一直在看熊猫教程,但似乎没有找到一种方法来做到这一点

谢谢您的帮助。

您可以使用重塑

In [702]: df['Break'].reshape(2, len(df.index)/2)
Out[702]:
array([['ww', 'ee', 'qq', 'xx', 'dd', 'gg', 'hh', 'tt', 'yy', 'uu'],
       ['ii', 'oo', 'pp', 'mm', 'kk', 'll', 'mm', 'bb', 'pp', 'zz']], dtype=object)

您可以首先使用
cumsum
为新的
索引创建列,然后使用,最后通过以下方式转换为
numpy数组


使用
values
属性将其放到
numpy
,然后
重塑
参数可以在需要确定的维度中取
-1

df.Break.values.reshape(2, -1)

array([['ww', 'ee', 'qq', 'xx', 'dd', 'gg', 'hh', 'tt', 'yy', 'uu'],
       ['ii', 'oo', 'pp', 'mm', 'kk', 'll', 'mm', 'bb', 'pp', 'zz']], dtype=object)

谢谢你的建议。它工作了,但是我做了一些其他的修改来添加另一行。(问题中只有两排)。我想添加另一行,使其成为3行。我将
restrape(2,len(df.index)/2
更改为
restrape(3,len(df.index)/3),但它返回一个错误,即
ValueError:新数组的总大小必须保持不变`。数字2的确切含义是什么?在
restrape(m,n)中
m*n
等于元素数。因此,您需要相应地选择分布。谢谢您的解释。我现在可以操纵形状。@Fang
重塑(m,-1)
将确保尊重
m
,并且
-1
指示其他维度将是它所需要的。感谢您的建议。如果没有重复条目,它会起作用,但是如果有重复条目呢?列“Axe”有重复的条目解决方案类似,只需要更改
df['g']=(df.Axe==1).cumsum()
到另一个代码,该代码为每个组返回相同的值。
df.Break.values.reshape(2, -1)

array([['ww', 'ee', 'qq', 'xx', 'dd', 'gg', 'hh', 'tt', 'yy', 'uu'],
       ['ii', 'oo', 'pp', 'mm', 'kk', 'll', 'mm', 'bb', 'pp', 'zz']], dtype=object)