Python 重塑数据帧行的形状
我有一个来自pandas的excel数据集,如下所示: 行:123567,列ABCDEFPython 重塑数据帧行的形状,python,arrays,pandas,dataframe,Python,Arrays,Pandas,Dataframe,我有一个来自pandas的excel数据集,如下所示: 行:123567,列ABCDEF A B C D E F 1 0 5 7 1 8 6 2 2 3 2 4 1 5 3 3 1 1 2 3 4 5 3 5 5 7 9 4 6 4 5 4 6 7 7 7 6 8 3 3 1 2 但我想做一个数据如下: 3排是一排 1 0 5 7 1 8 6 2 3 2 4 1 5 3 1 1 2 3 4 2 3 5 5 7
A B C D E F
1 0 5 7 1 8 6
2 2 3 2 4 1 5
3 3 1 1 2 3 4
5 3 5 5 7 9 4
6 4 5 4 6 7 7
7 6 8 3 3 1 2
但我想做一个数据如下:
3排是一排
1 0 5 7 1 8 6 2 3 2 4 1 5 3 1 1 2 3 4
2 3 5 5 7 9 4 4 5 4 6 7 7 6 8 3 3 1 2
最快、可能也是最简单的方法是只需对以下值调用
重塑
:
df.values.reshape(-1, df.shape[1] * 3)
array([[0, 5, 7, 1, 8, 6, 2, 3, 2, 4, 1, 5, 3, 1, 1, 2, 3, 4],
[3, 5, 5, 7, 9, 4, 4, 5, 4, 6, 7, 7, 6, 8, 3, 3, 1, 2]])
但是,如果您的数据没有执行重塑所需的确切行数,则会出错
您还可以使用
groupby
+apply
:
df.groupby(np.arange(len(df)) // 3 * 3).apply(lambda x: x.values.ravel())
即使第一个选项不起作用,这也应该起作用。谢谢您的帮助。我又有一个问题。你能帮助我如何像以前一样使用数据吗?但结果是通过使用excel writer中的循环存储在excel中的?@wennypuspita当然。你能提出一个新问题吗?这似乎与此无关,因此如果答案有帮助,请勾选我答案旁边的灰色复选框,并将其切换为绿色,以标记它已被接受,然后打开一个新问题。谢谢。