Python 如何将字典列表转换为逐列移动的行列表?

Python 如何将字典列表转换为逐列移动的行列表?,python,pandas,Python,Pandas,我想将字典列表转换为包含这些行的列的行列表。我还希望顺序从第1列开始,向下移动到该列的底部,然后从下一列开始,以此类推,直到列表完成 我还知道我的max\u items\u per\u column=25 假设我有一个这样的列表my_list=[1,2,3,…89,90],但是有下面这样的简单字典: my_list = [dict1, dict2, ... dict90] 我想把它转换成这样: 1 26 51 76 2 27 52 77 3 28 53 78 4

我想将字典列表转换为包含这些行的列的行列表。我还希望顺序从第1列开始,向下移动到该列的底部,然后从下一列开始,以此类推,直到列表完成

我还知道我的
max\u items\u per\u column=25

假设我有一个这样的列表
my_list=[1,2,3,…89,90]
,但是有下面这样的简单字典:

my_list = [dict1, dict2, ... dict90]
我想把它转换成这样:

 1  26  51   76
 2  27  52   77
 3  28  53   78
 4  29  54   79
 5  30  55   80
 6  31  56   81
 7  32  57   82
 8  33  58   83
 9  34  59   84
10  35  60   85
11  36  61   86
12  37  62   87
13  38  63   88
14  39  64   89
15  40  65   90
16  41  66   
17  42  67   
18  43  68   
19  44  69   
20  45  70   
21  46  71   
22  47  72   
23  48  73   
24  49  74   
25  50  75  
converted_list = [
    [dict1, dict26, dict51, dict76],
    [dict2, dict27, dict52, dict77],
    [dict3, dict28, dict53, dict78],
    .
    .
    .
    [dict25, dict50, dict75,None]
]
my_list = [i for i in range(1, 91)] # setting up an example
next_list = [my_list[x:x+25] for x in range(0, len(my_list), 25)] # groups into a list of lists of len 25 each
df = pd.DataFrame.from_records(next_list).T
converted_list = []
for index, rows in df.iterrows():
    my_list = [rows[0], rows[1], rows[2], rows[3]]
    converted_list.append(my_list)
因此,转换后的列表可以这样声明:

 1  26  51   76
 2  27  52   77
 3  28  53   78
 4  29  54   79
 5  30  55   80
 6  31  56   81
 7  32  57   82
 8  33  58   83
 9  34  59   84
10  35  60   85
11  36  61   86
12  37  62   87
13  38  63   88
14  39  64   89
15  40  65   90
16  41  66   
17  42  67   
18  43  68   
19  44  69   
20  45  70   
21  46  71   
22  47  72   
23  48  73   
24  49  74   
25  50  75  
converted_list = [
    [dict1, dict26, dict51, dict76],
    [dict2, dict27, dict52, dict77],
    [dict3, dict28, dict53, dict78],
    .
    .
    .
    [dict25, dict50, dict75,None]
]
my_list = [i for i in range(1, 91)] # setting up an example
next_list = [my_list[x:x+25] for x in range(0, len(my_list), 25)] # groups into a list of lists of len 25 each
df = pd.DataFrame.from_records(next_list).T
converted_list = []
for index, rows in df.iterrows():
    my_list = [rows[0], rows[1], rows[2], rows[3]]
    converted_list.append(my_list)

我不知道如何做到这一点,我也不知道这是否最好使用Pandas来完成。

如果您希望它作为最终格式的数据帧,可以这样做:

 1  26  51   76
 2  27  52   77
 3  28  53   78
 4  29  54   79
 5  30  55   80
 6  31  56   81
 7  32  57   82
 8  33  58   83
 9  34  59   84
10  35  60   85
11  36  61   86
12  37  62   87
13  38  63   88
14  39  64   89
15  40  65   90
16  41  66   
17  42  67   
18  43  68   
19  44  69   
20  45  70   
21  46  71   
22  47  72   
23  48  73   
24  49  74   
25  50  75  
converted_list = [
    [dict1, dict26, dict51, dict76],
    [dict2, dict27, dict52, dict77],
    [dict3, dict28, dict53, dict78],
    .
    .
    .
    [dict25, dict50, dict75,None]
]
my_list = [i for i in range(1, 91)] # setting up an example
next_list = [my_list[x:x+25] for x in range(0, len(my_list), 25)] # groups into a list of lists of len 25 each
df = pd.DataFrame.from_records(next_list).T
converted_list = []
for index, rows in df.iterrows():
    my_list = [rows[0], rows[1], rows[2], rows[3]]
    converted_list.append(my_list)
df看起来像:

>>> df
       0     1     2     3
0    1.0  26.0  51.0  76.0
1    2.0  27.0  52.0  77.0
2    3.0  28.0  53.0  78.0
3    4.0  29.0  54.0  79.0
4    5.0  30.0  55.0  80.0
5    6.0  31.0  56.0  81.0
6    7.0  32.0  57.0  82.0
7    8.0  33.0  58.0  83.0
8    9.0  34.0  59.0  84.0
9   10.0  35.0  60.0  85.0
10  11.0  36.0  61.0  86.0
11  12.0  37.0  62.0  87.0
12  13.0  38.0  63.0  88.0
13  14.0  39.0  64.0  89.0
14  15.0  40.0  65.0  90.0
15  16.0  41.0  66.0   NaN
16  17.0  42.0  67.0   NaN
17  18.0  43.0  68.0   NaN
18  19.0  44.0  69.0   NaN
19  20.0  45.0  70.0   NaN
20  21.0  46.0  71.0   NaN
21  22.0  47.0  72.0   NaN
22  23.0  48.0  73.0   NaN
23  24.0  49.0  74.0   NaN
24  25.0  50.0  75.0   NaN
如果要将其转换回列表列表,可以执行以下操作:

 1  26  51   76
 2  27  52   77
 3  28  53   78
 4  29  54   79
 5  30  55   80
 6  31  56   81
 7  32  57   82
 8  33  58   83
 9  34  59   84
10  35  60   85
11  36  61   86
12  37  62   87
13  38  63   88
14  39  64   89
15  40  65   90
16  41  66   
17  42  67   
18  43  68   
19  44  69   
20  45  70   
21  46  71   
22  47  72   
23  48  73   
24  49  74   
25  50  75  
converted_list = [
    [dict1, dict26, dict51, dict76],
    [dict2, dict27, dict52, dict77],
    [dict3, dict28, dict53, dict78],
    .
    .
    .
    [dict25, dict50, dict75,None]
]
my_list = [i for i in range(1, 91)] # setting up an example
next_list = [my_list[x:x+25] for x in range(0, len(my_list), 25)] # groups into a list of lists of len 25 each
df = pd.DataFrame.from_records(next_list).T
converted_list = []
for index, rows in df.iterrows():
    my_list = [rows[0], rows[1], rows[2], rows[3]]
    converted_list.append(my_list)
转换列表:

[[1.0, 26.0, 51.0, 76.0], [2.0, 27.0, 52.0, 77.0], [3.0, 28.0, 53.0, 78.0], [4.0, 29.0, 54.0, 79.0], [5.0, 30.0, 55.0, 80.0], [6.0, 31.0, 56.0, 81.0], [7.0, 32.0, 57.0, 82.0], [8.0, 33.0, 58.0, 83.0], [9.0, 34.0, 59.0, 84.0], [10.0, 35.0, 60.0, 85.0], [11.0, 36.0, 61.0, 86.0], [12.0, 37.0, 62.0, 87.0], [13.0, 38.0, 63.0, 88.0], [14.0, 39.0, 64.0, 89.0], [15.0, 40.0, 65.0, 90.0], [16.0, 41.0, 66.0, nan], [17.0, 42.0, 67.0, nan], [18.0, 43.0, 68.0, nan], [19.0, 44.0, 69.0, nan], [20.0, 45.0, 70.0, nan], [21.0, 46.0, 71.0, nan], [22.0, 47.0, 72.0, nan], [23.0, 48.0, 73.0, nan], [24.0, 49.0, 74.0, nan], [25.0, 50.0, 75.0, nan]]

这些格言来自哪里?没有其他方法可以像这样组织数据吗?谢谢,这很有效。我遇到的唯一问题是这一行的
keyrerror
my_list=[行[0],行[1],行[2],行[3]]
。这是我最后做的事情,这是一个很好的工具,你张贴!奇怪的是,要让它运行需要一个差异,这对我来说很有用。很高兴它起作用了!