如何将长列表分为相等成员的每一列

时间:2019-09-23 04:10:38

标签: python-3.x

现在,我有一长串这样的str ['aaa','bbb','ccc,'ddd,'eee','fff','ggg','hhh','iii',.......]可供300名成员

我想将每列中有5个成员分组,像这样,前5个成员进入column1,接下来的5个成员进入column2;

第1列 aa bbb 抄送 ddd EEE

第2列 fff gg 嗯 iii jjj

我可以建议使用pandas数据框或其他软件包进行编码吗? 谢谢

2 个答案:

答案 0 :(得分:0)

这可以通过使用 numpy 库来完成
示例:

import numpy as np #importing the library

array = np.array(["aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii"])
#creating a numpy array

array = array.reshape(3,3)
#reshape the array into a 3x3 "table"

array = np.swapaxes(array,0,1)
#swapping axis 0 and axis 1 such that "aaa","bbb","ccc" will be a column but not a row

结果将是

array([['aaa', 'ddd', 'ggg'],
       ['bbb', 'eee', 'hhh'],
       ['ccc', 'fff', 'iii']], dtype='<U3')

要将此数组转换为pandas DataFrame,只需执行以下操作:

import pandas as pd

df = pd.DataFrame(array)

答案 1 :(得分:0)

一个简单的切片操作就足够了。

l=['aaa','bbb','ccc','ddd','eee','fff','ggg','hhh','iii','jjj','kkk','lll'] 
new_list=[l[i:i+5] for i in range(0,len(l)-5,5)]
print(new_list) #[['aaa', 'bbb', 'ccc', 'ddd', 'eee'], ['fff', 'ggg', 'hhh', 'iii', 'jjj']]

让我们分解一下:以5的步长从第0个元素循环到最后5个元素。每次对数组的该部分进行切片后,将其追加到新列表中。 扩展为for循环:

new_list=[]
for i in range(0,len(l)-5,5):
    new_list.append(l[i:i+5])