Python中如何反转DataFrame最后n行和列并保留前序顺序
解决方案
要实现前10行/列保持原有顺序、反转最后5行/列的需求,可通过构造新的行/列索引序列,再用loc重新选取DataFrame的方式实现:
import numpy as np import pandas as pd # 初始化DataFrame df = pd.DataFrame(index=range(15), columns=range(15)) # 定义分割点:前10个元素保持原顺序,剩余5个反转 split_idx = 10 # 构造新行顺序:前10个索引 + 反转后的后5个索引 new_rows = list(range(split_idx)) + list(range(14, split_idx-1, -1)) # 构造新列顺序:逻辑与行一致 new_cols = list(range(split_idx)) + list(range(14, split_idx-1, -1)) # 重新排列得到目标DataFrame df_reversed = df.loc[new_rows, new_cols]
代码说明
split_idx = 10:指定前10个元素保留原顺序的分割位置range(14, split_idx-1, -1):生成从14到10的倒序索引,对应原最后5个索引(10、11、12、13、14)的反转df.loc[new_rows, new_cols]:通过重新指定行、列索引顺序,直接得到符合要求的DataFrame
验证后行/列顺序为:[0,1,2,...,9,14,13,12,11,10],与你需求一致(注:你示例中的15应为笔误,原DataFrame索引仅到14)
内容的提问来源于stack exchange,提问作者Hans Sprungfeld
相关产品推荐
相关产品推荐

