首页 > 解决方案 > 熊猫读取 csv,修剪最后两个字符

问题描述

一个 csv 文件如下所示:

a,b,c
1,2,3, 
4,5,6, 
a,b,c, 

当我尝试使用 pandas read_csv 读取此文件时,数据框如下所示:

   |---------------|
   |   | a | b | c |
   |---------------|
   | 1 | 2 | 3 |   |
   | 4 | 5 | 6 |   |
   | a | b | c |   |
   |---------------|

我认为数据中的问题是:它看起来像 1,2,3,space\n 和 pandas 认为有 4 列,第一列未命名。有什么办法可以将其更改为:

   |-----------|
   | a | b | c |
   |-----------|
   | 1 | 2 | 3 |
   | 4 | 5 | 6 |
   | a | b | c |
   |-----------|

这些文件大约有 5000 万行,而且文件很多。有什么办法可以用最少的运行时间来做到这一点?

标签: pythonpython-3.xpython-2.7pandas

解决方案


使用usecol参数 inpd.read_csv仅读取 csv 文件中的前三列。

from io import StringIO
csvtext = StringIO("""a,b,c
1,2,3, 
4,5,6, 
a,b,c, """)

df = pd.read_csv(csvtext, usecols=[0,1,2])
df

输出:

   a  b  c
0  1  2  3
1  4  5  6
2  a  b  c

推荐阅读