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

使用pandas读写CSV时,df.shape返回的列数为何不一致?

问题原因及解决办法
  • 核心原因:
    你用pd.DataFrame创建的DataFrame默认带有序列索引(0、1、2...),调用df.to_csv()时,pandas默认会把这个索引写入CSV文件里。打开你导出的CSV就能看到,第一列是没有表头的数字序列,这就是原DataFrame的索引。
    当你用pd.read_csv()读取时,pandas会把这列无表头的内容当成普通数据列,自动给它命名为Unnamed: 0之类的,所以列数从原来的2列变成了3列。

  • 解决办法:

    1. 导出时避免写入索引:
      导出CSV时加上index=False参数,这样就不会把索引写入文件:
      df.to_csv('your_file.csv', index=False)
      
      之后再用pd.read_csv读取,列数就和原DataFrame一致了。
    2. 读取时指定索引列:
      如果已经导出了带索引的CSV,读取时可以把第一列指定为索引:
      df_new = pd.read_csv('your_file.csv', index_col=0)
      
      这样pandas会把第一列当作DataFrame的索引,不会额外增加数据列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:36:22