如何使用pandas单步实现选取DataFrame前n列与后n列并回存
问题解答
完全可以单步操作完成该需求,直接通过列索引切片拼接后赋值给原DataFrame即可,推荐两种通用实现方式:
方式1:通过iloc整数索引实现(不依赖列名,通用性最强)
df = df.iloc[:, [*range(2), *range(-2, 0)]]
说明:
- 逗号前的
:表示选中所有行 - 逗号后的列表拼接了前2列索引
0、1和最后2列索引-2、-1,直接完成列筛选
方式2:通过列名切片实现
df = df[df.columns[:2].append(df.columns[-2:])]
注意事项
- 以上两种写法都是单步操作,执行后原
df会直接被覆盖为筛选后的4列数据,无需中间变量过渡 - 如果你的DataFrame总列数小于4,执行后会出现重复列,建议执行前可先判断总列数是否符合预期即可
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

