使用python从excel文件中删除额外的逗号

时间:2012-04-03 15:05:13

标签: python

我有一个csv文件,无论什么时候我访问它都会得到我

AAPL,2001年12月4日,,,,,

最后的逗号导致我的功能在我的其他应用程序中无法正常工作。我如何删除它以删除元素之后的任何其他逗号?

例如,校正之后的上述内容将是

aaple,2001年12月4日

任何事情都会有所帮助,非常感谢。

5 个答案:

答案 0 :(得分:4)

为什么要删除尾随逗号?通常,它们之间没有值的逗号意味着特定字段为空。

我认为最好不要修改行/文件,而是在你的应用程序中使用一种方法来分隔逗号上的行。然后,执行您需要处理的数据列表

import csv

csv_file = file('test.csv', 'rU')
csv_list = csv.reader(csv_file)

for k in csv_list:
    print filter(None,k)

>>>
 ['aapl','2001-02-4']

答案 1 :(得分:2)

以下是如何从字符串的右侧删除多余的逗号:

In [2]: mystring = '1,2,3,4,"Hello!",,,,,,,,,'

In [3]: mystring.rstrip(',')
Out[3]: '1,2,3,4,"Hello!"'

In [4]: 

展开此文件以对文件的每一行执行逗号删除操作:

  • 打开原始.csv文件。
  • 处理一行,删除多余的逗号。
  • 将处理过的行写入新文件。
  • 重复此操作直到原始.csv文件完全处理完毕。

答案 2 :(得分:1)

使用str.rstrip

>>> 'aapl,2001-12-4,,,,,'.rstrip(',')
'aapl,2001-12-4'

答案 3 :(得分:0)

如果您可以使用sed,那么您可以从命令行

执行此操作

sed -re 's/,*$//g' temp.csv

答案 4 :(得分:0)

最简单的技巧之一是使用usecols函数中的参数read_csv来限制您读入的列:

例如

import pandas as pd
from google.colab import files
import io
uploaded = files.upload()
x_train = pd.read_csv(io.StringIO(uploaded['x_train.csv'].decode('utf-8')), skiprows=1, usecols=range(10) ,header=None)

由于逗号位于第11列上,因此限制读者仅读取10列。