Pandas读取指定列未全显示、索引未显示及表格分行问题求助
Pandas CSV列显示问题解决
问题说明
处理大型CSV文件时,需要读取指定9列的前5行,但遇到两个问题:
- 初始运行代码后仅显示3列,且设置为
index_col=0的"Incident Number"未作为普通列显示 - 添加
pd.set_option('display.max_columns', None)后,表格被拆分成多段,无法在单行完整展示
核心原因
- Pandas默认限制显示列数,超出部分用
...省略 - 设置
index_col=0后,目标列会转为行索引,不再以普通列形式显示 - 当列内容过长时,默认的
display.width值不足,导致表格自动换行拆分
解决方法
方法1:保留所有列作为普通列,单行展示
去掉index_col=0参数,同时设置足够宽的显示宽度:
import pandas as pd # 配置显示选项,确保所有列单行完整展示 pd.set_option('display.max_columns', None) pd.set_option('display.width', 1000) # 可根据实际列宽调整数值 columns = [0, 1, 2, 3, 4, 5, 10, 12, 17] header_names = ['Incident Number', 'Incident Type', 'Report Date', 'Nearest Populated Center', 'Province', 'Company', 'Substance', 'Significant', 'What Happened category'] p_line = pd.read_csv(r"pipeline_data.csv", skiprows=1, nrows=5, usecols=columns, names=header_names) print(p_line)
方法2:保留"Incident Number"作为索引,单行展示表格
如果需要保留索引列,只需补充设置display.width:
import pandas as pd pd.set_option('display.max_columns', None) pd.set_option('display.width', 1000) columns = [0, 1, 2, 3, 4, 5, 10, 12, 17] header_names = ['Incident Number', 'Incident Type', 'Report Date', 'Nearest Populated Center', 'Province', 'Company', 'Substance', 'Significant', 'What Happened category'] p_line = pd.read_csv(r"pipeline_data.csv", skiprows=1, nrows=5, usecols=columns, names=header_names, index_col=0) print(p_line)
补充:已设置索引后转回普通列
如果已经读取数据并设置了索引,可通过reset_index()把索引转回列:
p_line = p_line.reset_index()
内容的提问来源于stack exchange,提问作者Amber Wonnenberg
相关产品推荐
相关产品推荐

