Python DataFrames列根据列表重新排列-DataFrames具有不同的列
我的问题摘要:Python DataFrames列根据列表重新排列-DataFrames具有不同的列,python,pandas,dataframe,columnsorting,Python,Pandas,Dataframe,Columnsorting,我的问题摘要: 我有许多数据帧,都有相同的列池(7列,例如COLUMN1:COLUMN7),但有时会缺少一列或多列(即,一个数据帧可能有COLUMN1:COLUMN3+COLUMN6:COLUMN7,因此缺少第4列和第5列) 每个数据帧每次都有按不同顺序排列的列(即,df1有其顺序,df2有另一个顺序,df3又有另一个顺序等等…) 我想在每个数据帧中根据 用作基准的列(在本例中为列列表 从1到7) 期望的结果是所有数据帧都具有相同的属性 如果列缺少顺序,则基于此列表的列顺序 应保留(即,
- 我有许多数据帧,都有相同的列池(7列,例如COLUMN1:COLUMN7),但有时会缺少一列或多列(即,一个数据帧可能有COLUMN1:COLUMN3+COLUMN6:COLUMN7,因此缺少第4列和第5列)
- 每个数据帧每次都有按不同顺序排列的列(即,df1有其顺序,df2有另一个顺序,df3又有另一个顺序等等…)
- 我想在每个数据帧中根据 用作基准的列(在本例中为列列表 从1到7)
- 期望的结果是所有数据帧都具有相同的属性 如果列缺少顺序,则基于此列表的列顺序 应保留(即,如果缺少第4列和第5列,则顺序为 列应该是:COL1、COL2、COL3、COL6、COL7)
“id”、“title”、“type”、“category”、“secondary category”、“date”、“description”
。因此,此列表中的列最多可以是7列。例如:
DataFrame1“id”、“标题”、“日期”、“类别”、“类型”、“说明”、“次要类别”
DataFrame2“id”、“说明”、“标题”、“类型”、“类别”、“日期”
DataFrame3“id”、“类别”、“说明”、“标题”
期望输出:
我想根据初始列表“id”、“title”、“type”、“category”、“secondary category”、“date”、“description”
,对列进行排序,即使列数不同。
根据上述示例,数据帧应为:
DataFrame1“id”、“title”、“type”、“category”、“secondary category”、“date”、“description”
DataFrame2“id”、“标题”、“类型”、“类别”、“日期”、“说明”
DataFrame3“id”、“标题”、“类别”、“说明”
是否有一种方法(例如循环)可以这样排列列?您可以使用列表理解来排序列的顺序,并使用
重新索引来设置正确的顺序:
desired_order = ['id', 'title', 'type', 'category', 'secondary category', 'date', 'description']
df = df.reindex([i for i in desired_order if i in df.columns], axis=1)
太棒了,这成功了,谢谢!