使用pandas重塑两列数据

3

我希望能够得到关于使用pandas进行2列数据重塑的帮助。

我有一个csv文件(test.csv)

Axe Break   Chaplin
1   52.1    ty
2   32.2    ty
3   44.6    ty
3   99.1    ty
5   122.3   ty
3   43.2    ty
7   79.4    ty
8   45.5    ty
9   56.3    ty
0   15.4    ty
1   35.7    ty
2   23.7    ty
3   66.7    ty
4   33.8    ty
1   12.9    ty
7   34.8    ty
1   21.6    ty
3   43.7    ty
6   44.2    ty
9   55.8    ty
4   22.4    ty
3   55.6    ty
2   11.4    ty
5   54.6    ty
6   19.7    ty
7   23.5    ty
1   12.8    ty
6   34.6    ty
8   69.6    ty
9   55.8    ty

期望的结果是这样的。
[[  52.1   32.2   44.6   99.1  122.3]
 [  43.2   79.4   45.5   56.3   15.4]]
[[ 35.7  23.7  66.7  33.8  12.9]
 [ 34.8  21.6  43.7  44.2  55.8]]
[[ 22.4  55.6  11.4  54.6  19.7]
 [ 23.5  12.8  34.6  69.6  55.8]]
ty

我已经尝试过,并附上样本脚本。
import pandas as pd
import numpy as np

df = pd.read_csv("test2.csv")

def arrange1():
    start = 0
    for i in range(0, len(df.index)):
        if (i + 1)%10 == 0:
            result = df['Break'].iloc[start:i+1].reshape(2,5)
            start = i + 1
            print result
    print "ty"

arrange1()

虽然这个脚本提供了我想要的结果,但我感觉可以用Pandas另一种方式来完成。

我希望不必要做以下这个操作:

print "ty"

感谢您的帮助。
【更新】
非常抱歉没有说明我的意思。我想得到像我展示的结果,以“ty”结尾,但我不想写


print "ty"

在脚本中。换句话说,
print result

将打印此输出

[[  52.1   32.2   44.6   99.1  122.3]
 [  43.2   79.4   45.5   56.3   15.4]]
[[ 35.7  23.7  66.7  33.8  12.9]
 [ 34.8  21.6  43.7  44.2  55.8]]
[[ 22.4  55.6  11.4  54.6  19.7]
 [ 23.5  12.8  34.6  69.6  55.8]]
ty
1个回答

0
使用这个:
df.Break.values.reshape(3, 2, -1)

array([[[  52.1,   32.2,   44.6,   99.1,  122.3],
        [  43.2,   79.4,   45.5,   56.3,   15.4]],

       [[  35.7,   23.7,   66.7,   33.8,   12.9],
        [  34.8,   21.6,   43.7,   44.2,   55.8]],

       [[  22.4,   55.6,   11.4,   54.6,   19.7],
        [  23.5,   12.8,   34.6,   69.6,   55.8]]])

或者如果你需要列表

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

[[[52.1, 32.2, 44.6, 99.1, 122.3], [43.2, 79.4, 45.5, 56.3, 15.4]],
 [[35.7, 23.7, 66.7, 33.8, 12.9], [34.8, 21.6, 43.7, 44.2, 55.8]],
 [[22.4, 55.6, 11.4, 54.6, 19.7], [23.5, 12.8, 34.6, 69.6, 55.8]]]

谢谢您的建议,但我忘了提到我想在矩阵末尾包含“ty”,但我不想使用“print”ty"。我已经更新了问题以反映这一点。 - Fang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接