Pandas如何通过iloc同时选取离散列与连续区间列
Pandas 同时选中离散列和连续区间列的实现方法
你需要的操作完全可以实现,只是不能直接使用df.iloc[:,[a,b,c:d]]的写法,需要先将离散索引和连续区间的索引拼接为完整的索引列表再传入iloc。
推荐实现方式
方法1:使用numpy.r_快速拼接索引(最简洁)
numpy.r_可以自动把切片对象展开为整数列表,直接混合放入离散索引和连续切片即可:
import numpy as np # 示例:选中第a、b列,以及第c到第d-1列(切片遵循左闭右开规则) df1 = df.iloc[:, np.r_[a, b, c:d]]
如果需要包含第d列,将切片改为c:d+1即可
方法2:手动拼接索引列表(无需额外依赖)
如果不想引入numpy依赖,也可以手动生成连续区间的索引列表再和离散索引拼接:
# 示例:选中第a、b列,以及第c到第d-1列 cols = [a, b] + list(range(c, d)) df1 = df.iloc[:, cols]
注意事项
iloc使用0起始的位置索引,DataFrame的第一列对应索引值为0- 所有切片均遵循左闭右开规则,如需包含结束位置的列,需要将切片结束值+1
内容的提问来源于stack exchange,提问作者confused student
相关产品推荐
相关产品推荐

