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

如何根据数据类型(dtype)对Pandas DataFrame列重新排序?

Pandas DataFrame列按类型重新排列的简便方法

核心方案

通过筛选列类型,将数值型(Int64/float64等)列集中放在前面,object类型列放在后面,无需手动逐个列名排序,适合大量列的场景。

基础实现代码

假设你的DataFrame名为df:

# 提取所有数值类型列(可根据实际类型调整include参数)
numeric_cols = df.select_dtypes(include=['Int64', 'float64']).columns.tolist()
# 提取所有object类型列
object_cols = df.select_dtypes(include=['object']).columns.tolist()
# 合并新的列顺序并重新排列DataFrame
df = df[numeric_cols + object_cols]

自定义数值列内部顺序(如示例需求)

如果需要像示例中那样指定部分数值列的先后顺序,可在基础方案上调整:

# 自定义需要优先排列的数值列顺序
priority_numeric_cols = ['Age', 'BMI', 'Weight']
# 筛选DataFrame中存在的目标列,避免报错
priority_numeric_cols = [col for col in priority_numeric_cols if col in df.columns]
# 提取剩余的数值列,保留原有相对顺序
remaining_numeric_cols = [col for col in df.select_dtypes(include=['Int64']).columns 
                          if col not in priority_numeric_cols]
# 合并最终列顺序:优先列 + 剩余数值列 + object列
new_col_order = priority_numeric_cols + remaining_numeric_cols + object_cols
df = df[new_col_order]

说明

  • select_dtypes方法可以快速筛选指定类型的列,支持同时传入多种类型(如include=['int64', 'float64', 'Int64'])
  • 上述代码无需手动罗列100+列名,自动按类型归类,同时支持自定义核心列的顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:18:37