Pandas读取CSV丢失自定义索引问题求助
解决Pandas读取CSV丢失自定义索引的问题
问题核心是:保存CSV时自定义索引会被写入为单独一列,但pd.read_csv()默认不会把这一列识别为索引,所以会自动生成新的默认索引。以下是两种场景的解决方法:
场景1:已经保存好CSV文件
直接在pd.read_csv()中指定index_col参数,明确告诉Pandas哪一列是原索引:
- 若原索引是CSV的第一列,用索引位置指定:
df_read = pd.read_csv('your_file.csv', index_col=0)
- 若保存时给索引列设置了名称(比如用
df.to_csv(..., index_label='my_index')),可以直接用列名指定:
df_read = pd.read_csv('your_file.csv', index_col='my_index')
场景2:还未保存CSV文件(提前规避问题)
保存时确保索引被写入(默认index=True,可显式声明),还能给索引列加名称,方便后续读取:
import pandas as pd # 创建带自定义索引的DataFrame data = {'score': [85, 92, 78]} df = pd.DataFrame(data, index=['Alice', 'Bob', 'Charlie']) # 保存时写入索引并给索引列命名(命名可选) df.to_csv('scores.csv', index=True, index_label='name') # 读取时直接用索引列名指定 df_read = pd.read_csv('scores.csv', index_col='name')
这样读取后的DataFrame就能完全保留原来的自定义索引,不会生成新的默认索引。
内容的提问来源于stack exchange,提问作者TheStudent
相关产品推荐
相关产品推荐

