我有一个csv文件,无论什么时候我访问它都会得到我
AAPL,2001年12月4日,,,,,
最后的逗号导致我的功能在我的其他应用程序中无法正常工作。我如何删除它以删除元素之后的任何其他逗号?
例如,校正之后的上述内容将是
aaple,2001年12月4日
任何事情都会有所帮助,非常感谢。
米
答案 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]:
展开此文件以对文件的每一行执行逗号删除操作:
答案 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列。