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

如何按列范围批量修改DataFrame中多列的数据类型?

解决方法:按列索引范围批量修改DataFrame数据类型

astype()方法仅接受字典格式的参数(键为列名/标签,值为目标数据类型),直接传入索引切片会触发语法错误。要实现按索引范围批量修改类型,可通过以下两种方式完成:

方案1:提取目标列名构建类型映射字典

先通过列索引切片获取对应列的名称,再生成类型映射字典传入astype():

# 注意:Pandas索引从0开始,若业务中"第17列"是从1计数,需将起始索引改为16
cols_to_convert = df.columns[17:41]
df = df.astype({col: 'int64' for col in cols_to_convert})

方案2:直接对列切片转换后赋值

选中目标列切片,转换类型后直接覆盖原DataFrame的对应列,无需构建字典:

# 同样注意索引范围的起始值,按需调整为16:41以匹配1计数的列范围
df.iloc[:, 17:41] = df.iloc[:, 17:41].astype('int64')

关键提示

  • 确认索引计数规则:Python切片为左闭右开,若按业务习惯从1计数列,16:41会包含第17到41列(对应索引16至40)。
  • 若目标列存在无法转换为int64的非数值数据,会抛出ValueError,需提前做好数据清洗或异常处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:40:57