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

使用pandas处理数据未主动赋值列名,列名为何全部变为数字?

问题根源

你代码的最后一行df.columns = list(range(len(df.columns)))是导致所有列名变为数字的直接原因,该行会强制将当前DataFrame的所有列名覆盖为从0开始的连续整数,直接替换了原有的old_index、destination、arr、dep等列名。

修正方案

你仅需要给拆分出的两个城市列命名,不需要全量修改所有列名,修正后的代码如下:

import pandas as pd

df = pd.read_csv('FlightDistanceTest.csv')
df.rename(columns={'Normalised City Pair': 'destination'}, inplace=True)
split_city = df['destination'].str.split(' - ', expand=True)
# 给拆分得到的新列单独命名,不影响原有列
split_city.columns = ['出发城市', '到达城市']
df = pd.concat([df, split_city], axis=1)
# 删掉原代码中全量修改列名的行即可

如果你不需要给新列自定义名称,直接删掉原代码最后一行全量修改列名的代码即可,拼接后原有列名会保留,拆分出的新列默认使用0、1作为列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:36:00