我有一个包含这些列的数据框列表
Color Date Fruit Num
都有相同的列。
我需要重新安排专栏。但是,for循环似乎不起作用。
for i in [df1,df2,df3,df4,df5,df6]:
i = i[['Date','Fruit','Num','Color']]
这样
df1 = df1[['Date','Fruit','Num','Color']]
它改变了列顺序,但为什么不在循环中。不是每次循环遍历每个数据帧并分配列名称的重新排序。
有什么建议吗?
答案 0 :(得分:0)
考虑使用DF的字典而不是DF列表:
给定数据集:
In [470]: df1
Out[470]:
c b a
0 63 85 49
1 51 20 43
2 92 67 93
3 58 11 96
4 19 70 82
In [471]: df2
Out[471]:
b c a
0 83 53 0
1 45 23 43
2 49 64 93
3 76 34 38
4 98 78 88
In [472]: dfs = {'df1':df1, 'df2':df2}
解决方案:
In [473]: for k in dfs.keys():
...: dfs[k] = dfs[k][['a','b','c']]
...:
In [474]: dfs
Out[474]:
{'df1': a b c
0 49 85 63
1 43 20 51
2 93 67 92
3 96 11 58
4 82 70 19, 'df2': a b c
0 0 83 53
1 43 45 23
2 93 49 64
3 38 76 34
4 88 98 78}
In [475]: dfs['df1']
Out[475]:
a b c
0 49 85 63
1 43 20 51
2 93 67 92
3 96 11 58
4 82 70 19
In [476]: dfs['df2']
Out[476]:
a b c
0 0 83 53
1 43 45 23
2 93 49 64
3 38 76 34