numpy 什么是最有效的方法来拆分Python列表

oipij1gg  于 2023-04-06  发布在  Python
关注(0)|答案(2)|浏览(121)

我有一个向量,它总是对象MK的倍数。在下面的例子中,M=2K=3向量的长度为6。我想要找到的是使用的最佳方法使用MK的值来拆分列表,以便生成包含M列和K的panda Dataframe 每列中的行。
我可以看到一种循环遍历列表并抓取和组织我需要的东西的方法。然而,我假设有一种更有效的方法,希望有人能帮助指出这一点。

import pandas as pd
result = [1,2,3,4,5,6]
M = 2
K = 3
A = pd.DataFrame(result[0:3])
B = pd.DataFrame(result[3:6])
final = pd.concat([A.reset_index(drop = True), B], axis = 1)
liwlm1x9

liwlm1x91#

final中获得相同值的一个有效解决方案是:

import pandas as pd
import numpy as np

result = [1, 2, 3, 4, 5, 6]
final = pd.DataFrame(np.array(result).reshape(M,K).T)

这个reshape是一个平面numpy数组,达到预期的维度,然后以转置顺序(.T)读取它,以获得先沿着列降序,然后跨行降序的值。

46qrfjad

46qrfjad2#

你可以这样做:

import numpy as np
...
df = pd.DataFrame(np.array(result).reshape(K, M))

实际上,你想要:

pd.DataFrame(np.array(result).reshape(K, M, order='F'))

相关问题