You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在列名未知的情况下删除pandas DataFrame的第一列

pandas删除第一列(列名未知场景)的实现方法

你使用的df1 = df1.iloc[:, 1:]本身逻辑是正确的,未生效通常是两个常见原因:

  1. 你误将pandas自动生成的行索引当成了数据第一列,iloc切片不会操作行索引,所以看起来没有生效
  2. 操作后你后续调用的还是未修改的旧DataFrame对象,或者生成的是视图而非独立副本导致修改未落地

方法1:iloc切片法(原有写法的优化版)

担心视图副本问题可以加copy()保证生成独立对象:

df1 = df1.iloc[:, 1:].copy()

适用场景:需要快速切片,且不需要保留被删除列的内容

方法2:drop方法(可读性更高)

直接取第一列的列名传给drop方法,支持inplace直接修改原对象或者赋值生成新对象:

# 方式A:生成新对象,不修改原df
df1 = df1.drop(df1.columns[0], axis=1)
# 方式B:直接修改原df,不需要额外赋值
df1.drop(df1.columns[0], axis=1, inplace=True)

适用场景:代码可读性要求高,需要明确体现删除列的操作逻辑

方法3:pop方法(需保留被删除列时使用)

如果需要把删掉的第一列单独保存使用,可以用pop方法,会直接修改原DataFrame同时返回被删除的列:

deleted_col = df1.pop(df1.columns[0])

适用场景:需要复用被删除的第一列数据

注意事项

  • 如果你要删除的是无列名的行索引,只需要在输出/导出数据时添加index=False参数即可,不需要额外删除操作
  • 所有操作执行后可以用print(df1.head())打印前5行验证修改结果

内容的提问来源于stack exchange,提问作者Casey Niblett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:15:02