Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python csv行开头和结尾的额外逗号,如何删除?_Python_Pandas_Csv_Dataframe_Comma - Fatal编程技术网

Python csv行开头和结尾的额外逗号,如何删除?

Python csv行开头和结尾的额外逗号,如何删除?,python,pandas,csv,dataframe,comma,Python,Pandas,Csv,Dataframe,Comma,因此,我有一个.csv文件,其中每一行如下所示: ,11:00:14,4,5,93.7,0.01,0.0,7,20,0.001,10,49.3,0.01, ,11:00:15,4,5,94.7,0.04,0.5,7,20,0.005,10,49.5,0.04, 当它看起来像这样时: 11:00:14,4,5,93.7,0.01,0.0,7,20,0.001,10,49.3,0.01 11:00:15,4,5,94.7,0.04,0.5,7,20,0.005,10,49.5,0.04 我认为这就是

因此,我有一个.csv文件,其中每一行如下所示:

,11:00:14,4,5,93.7,0.01,0.0,7,20,0.001,10,49.3,0.01,
,11:00:15,4,5,94.7,0.04,0.5,7,20,0.005,10,49.5,0.04,

当它看起来像这样时:

11:00:14,4,5,93.7,0.01,0.0,7,20,0.001,10,49.3,0.01
11:00:15,4,5,94.7,0.04,0.5,7,20,0.005,10,49.5,0.04

我认为这就是熊猫没有正确创建数据帧的原因。如何删除这些逗号

生成原始csv文件的代码为

def tsv2csv():

# read tab-delimited file
with open(file_location + tsv_file,'r') as fin:
    cr = csv.reader(fin, delimiter='\t')
    filecontents = [line for line in cr]

# write comma-delimited file (comma is the default delimiter)
# give the exact location of the file
#"newline=''" at the end of the line stops there being spaces between each row
with open(new_csv_file,'w', newline='') as fou:
    cw = csv.writer(fou, quotechar='', quoting=csv.QUOTE_NONE)
    cw.writerows(filecontents)

您可以使用
strip
在文本的开头和结尾去除任何字符,并给出一个字符串,其中包含您不想作为参数转义的字符

x = ',11:00:14,4,5.,93.7,0.01,0.0,7,20,0.001,10,49.3,0.01,'
print x.strip(',')
>11:00:14,4,5.,93.7,0.01,0.0,7,20,0.001,10,49.3,0.01

不确定它是否适用于您的情况,您是否尝试过导入:

    df = pd.read_csv('filename', sep=';')

您可以使用
usecols
指定要导入的列,如下所示:

import pandas as pd

csv_df = pd.read_csv('temp.csv', header=None, usecols=range(1,13))

这将跳过第一个和最后一个空列。

后面的逗号对应于缺少的数据。当加载到数据帧中时,它们被加载为NAN,因此您需要做的就是使用
dropna
或将它们切掉-

df = pd.read_csv('file.csv', header=None).dropna(how='all', axis=1)
或者


这就产生了“ValueError:Usecols不匹配名称”。对于熊猫,我恐怕是个新手,所以我不确定这是否是一个简单的修复方法。对于您提供的csv示例,可能真实的文件是不同的?是的,这只是它的一部分,作为前15行,用户信息也是如此,如果您有标题,尝试删除标题选项,重要的一点是usecols。生成原始CSV文件的代码是什么?我已经在主帖子中添加了代码。如果您的问题得到了回答,请。您可以通过单击最有用答案旁边的灰色复选框并将其变为绿色来接受答案。谢谢。很高兴我做了一个iloc解决方案。这是我所说的最普通的。
df = pd.read_csv('file.csv', header=None).iloc[:, 1:-1]
df

         1   2    3     4     5    6   7   8      9   10    11    12
0  11:00:14   4  5.0  93.7  0.01  0.0   7  20  0.001  10  49.3  0.01
1  11:00:15   4  5.0  94.7  0.04  0.5   7  20  0.005  10  49.5  0.04