重新组织数据帧列表

2024-06-26 15:03:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个n数据帧列表

mylist = [None]*3
mylist[0] = pd.DataFrame(data=[[1,2,3,4,5],[6,7,8,9,10]],columns=['a','b','c','d','e'])
mylist[1] = pd.DataFrame(data=[[11,12,13,14,15],[16,17,18,19,20]],columns=['a','b','c','d','e'])
mylist[2] = pd.DataFrame(data=[[21,22,23,24,25],[26,27,28,29,30]],columns=['a','b','c','d','e'])

每个数据帧包含x列和y

我想在mylist_transf中转换mylist 具有与mylist列一样多的数据帧。mylist_transf的第一个数据帧应该包含mylist中数据帧的第一列,第二个数据帧应该包含第二列等等

所需的输出如下

mylist_transf = [None]*5
mylist_transf[0] = pd.DataFrame(data=[[1,6],[11,16],[21,26]],columns=['0','1'])
mylist_transf[1] = pd.DataFrame(data=[[2,7],[12,17],[22,27]],columns=['0','1'])
mylist_transf[2] = pd.DataFrame(data=[[3,8],[13,18],[23,28]],columns=['0','1'])
mylist_transf[3] = pd.DataFrame(data=[[4,9],[14,19],[24,29]],columns=['0','1'])
mylist_transf[4] = pd.DataFrame(data=[[5,10],[15,20],[25,30]],columns=['0','1'])

我希望用pythonic的方式来实现这一点(我在mylist中有许多数据帧) 如果可能的话,我还要将名称'a','b','c','d','e'分配给mylist_transf的新5个列表条目


Tags: columns数据名称nonedataframe列表data方式
1条回答
网友
1楼 · 发布于 2024-06-26 15:03:42

Concat,对列进行分组,然后拆分并重置索引,即

new_list = [i.T.reset_index(drop=True) for _,i in pd.concat(mylist,1).groupby(axis=1,level=0)]

输出:

new_list[0]
#    0   1
#0   1   6
#1  11  16
#2  21  26
new_list[1]
#    0   1 
#0   2   7
#1  12  17
#2  22  27
new_list[4]
#    0   1
#0   5  10
#1  15  20
#2  25  30

相关问题 更多 >