如何根据一个data frame的行顺序调整另一个data frame的列顺序
首先你可以通过以下步骤实现需求,默认你使用Python Pandas处理数据框:
- 先提取第一个数据框的行顺序作为目标排序规则:
# 提取mydata2的行索引作为目标列顺序 target_col_order = mydata2.index.to_list()
- 用提取到的顺序重排scores的列即可:
# 直接重排,如果scores存在mydata2行索引中没有的列会直接丢弃 scores_ordered = scores[target_col_order] # 如果希望保留scores中所有列,没有匹配到的列补空值,可以用reindex方法 scores_ordered = scores.reindex(columns=target_col_order) # 如果只保留两者共有的列、避免报错,可以先过滤有效列 valid_cols = [col for col in target_col_order if col in scores.columns] scores_ordered = scores[valid_cols]
如果你的行匹配依据不是mydata2的索引、而是某一列的值,只需要把第一步提取顺序的代码替换为对应列的取值列表即可,比如匹配依据是mydata2的sample_id列:
target_col_order = mydata2['sample_id'].to_list()
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

