现在,我有一长串这样的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数据框或其他软件包进行编码吗? 谢谢
答案 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])