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



我有一个向量,它总是对象MK的倍数。在下面的例子中,M=2K=3的向量长度为6。我想找到的是使用MK的值来分割我的列表的最佳方法,因此它会导致每个列中有M列和K行的pandas数据框。

我可以看到一种方法来循环列表和抓取和组织我需要的东西。然而,我认为有一种更有效的方法,希望有人能帮我指出来。

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)

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)读取它,首先沿着列降序,然后跨行降序)

你可以这样做:

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

实际上,你需要:

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

相关内容

  • 没有找到相关文章

最新更新