Python 熊猫读取csv,修剪最后两个字符

Python 熊猫读取csv,修剪最后两个字符,python,python-3.x,python-2.7,pandas,Python,Python 3.x,Python 2.7,Pandas,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,空

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,空格\n,熊猫认为有4列,第一列未命名。有什么方法可以将此更改为:

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

这些文件大约有5000万行,并且有许多文件。有什么方法可以用最少的运行时间完成吗?

使用
pd中的
usecol
参数。read\u 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
    a   b   c
0   1   2   3
1   4   5   6
2   a   b   c

考虑下面的代码,其中
index\u col=False
。当您不知道csv文件中需要多少列时,可以使用此解决方案。如果不同的文件具有不同的列数,则效果更好。有关更多信息,请参阅

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

df = pd.read_csv(csvtext, index_col=False)
df
输出:

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

查看pd.read中的usecols参数_csv@ScottBoston,你能再解释一下我在这种情况下可以使用它吗?如果我不知道输入csv文件中有多少列,你可以在
read\u csv()中使用
index\u col=False
?我有大量文件,无法手动检查该文件中有多少列。您是正确的。你应该试试@harvipan解决方案。是的,我会的。谢谢@Scott,你的解决方案也奏效了。