如何提取pandas DataFrame中除首列外的所有列名并转为列表
实现方法
你不需要手动枚举列名,也不需要删除原DataFrame的首列,直接利用Pandas列索引的切片特性就能实现需求,全程不会改动原始数据:
- 最简洁的实现方式:对
df.columns做切片,跳过索引为0的首列,再转成列表即可
# 存储除首列外所有列名的列表 cols_without_first = df.columns[1:].tolist()
df.columns返回的是Pandas的Index类型对象,原生支持Python通用切片规则:索引从0开始计数,[1:]表示取从位置1(即第二列)到末尾的所有元素,调用tolist()就能转换成普通Python列表。整个操作不会修改原DataFrame的任何结构和数据,首列可以正常在后续流程中调用。
- 如果你后续需要批量操作除首列外的列(比如特征计算、类型转换),甚至不需要转成列表,直接用切片后的Index对象就能做列选择,不会改动原数据:
# 临时选取除首列外的所有数据做运算,原df保持不变 sub_df = df.loc[:, df.columns[1:]]
避坑提示:不要使用
df.drop(columns=df.columns[0], inplace=True)、del df[df.columns[0]]这类写法,这类操作会直接修改原DataFrame、删除首列数据,不符合你保留首列的需求。
内容的提问来源于stack exchange,提问作者RadiantAine
相关产品推荐
相关产品推荐

