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

Spark Scala中无表头DataFrame如何不指定列名删除最后一列

当然有办法!不用手动指定列名也能轻松删掉无表头DataFrame的最后一列,给你几种实用的方案:

方法1:用iloc切片直接筛选列

这是最直观的方式,利用位置索引切片,直接保留除最后一列外的所有列:

df = df.iloc[:, :-1]

解释一下::表示选中所有行,:-1表示选中从第一列到倒数第二列的所有列,自动排除最后一列,完全不需要关心列名是什么。

方法2:结合drop和列索引获取最后一列

如果你更习惯用drop方法,可以通过df.columns[-1]自动获取最后一列的标识(哪怕是无表头的默认数字索引),然后传入drop:

df = df.drop(df.columns[-1], axis=1)

这里axis=1指定我们要对列进行操作,避免和行操作混淆。如果想原地修改DataFrame(不需要重新赋值),可以加上inplace=True参数:

df.drop(df.columns[-1], axis=1, inplace=True)

举个实际例子

假设你有这样一个无表头的DataFrame:

import pandas as pd
data = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
df = pd.DataFrame(data)

用上面任意一种方法,都会得到去掉最后一列的结果:

01
01020
14050
27080

这些方法都完全不需要手动输入列名,不管你的DataFrame列是默认数字索引还是其他无意义的标识,都能完美生效。

内容的提问来源于stack exchange,提问作者Sujeet Kumar Pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:57:40