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

Pandas:如何将单行逗号分隔的CSV内容读取为单列多行数据框?

问题根源

你之前的读取逻辑没有关闭Pandas默认的表头识别规则:Pandas默认将CSV第一行作为列名读取,也就是把你那80个连续存放的年份全部当成了列名;遇到重复值时Pandas会自动给列名追加.1、.2后缀做去重,后续转置操作拿到的就是这些被改过的字符串值,而非原始年份数值。

正确实现代码

读取时指定header=None,明确告知Pandas文件没有表头,所有内容都作为普通数据处理:

import pandas as pd
# 核心参数:header=None 跳过表头识别,整行80个值全部作为数据读取
raw_df = pd.read_csv('tos_year.csv', header=None)
# raw_df 结构为1行80列,直接转置即可得到80行1列的目标结构
tos_year = raw_df.T
tos_year.columns = ['Year']
# 可选:将默认读入的浮点型年份转为整数
tos_year['Year'] = tos_year['Year'].astype(int)

精简版一步到位代码

不需要保留中间变量的话,可以直接通过stack操作把二维数据压成单列:

tos_year = pd.read_csv('tos_year.csv', header=None).stack().to_frame(name='Year')
后续拼接说明

生成的tos_year索引是0到79的连续整数序列,和常规读取生成的主数据框索引完全匹配,后续直接执行pd.concat([主数据框, tos_year], axis=1)即可完成横向拼接,不会出现索引错位产生的空值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 10:15:08