Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 pd.read_csv忽略不带';没有标题_Python_Csv_Pandas - Fatal编程技术网

Python pd.read_csv忽略不带';没有标题

Python pd.read_csv忽略不带';没有标题,python,csv,pandas,Python,Csv,Pandas,我有一个由第三方程序生成的.csv文件。文件中的数据采用以下格式: %m/%d/%Y 49.78 85 6 15 03/01/1984 6.63368 82 7 9.8 34.29056405 2.79984079 2.110346498 0.014652412 2.304545521 0.004732732 03/02/1984 6.53368 68 0 0.2 44.61471002 3.21623666 2.9

我有一个由第三方程序生成的.csv文件。文件中的数据采用以下格式:

%m/%d/%Y    49.78   85  6   15                      
03/01/1984  6.63368 82  7   9.8 34.29056405 2.79984079  2.110346498 0.014652412 2.304545521 0.004732732
03/02/1984  6.53368 68  0   0.2 44.61471002 3.21623666  2.990408898 0.077444779 2.793385466 0.02661873
03/03/1984  4.388344    55  6   0   61.14463457 3.637231063 3.484310818 0.593098236 3.224973641 0.214360796
共有5列标题(excel中的第1行,A-E列),但总共有11列(第1行的F-K列为空,第2-N行包含A-K列的浮点值)

我不知道如何将.csv行粘贴进来,以便它们可以轻松复制,对此我深表歉意。excel工作表的图像如下所示:

当我使用以下代码时:

FWInds=pd.read_csv("path.csv")
或:

生成的dataframe FWInds不包含最后6列-它只包含带有标题的列(excel中的A-E列,A列作为索引值)

最后6列是我唯一想读的

我还尝试:

FWInds=pd.read_csv('path,csv', header=None, index_col=False)
但是得到了以下错误

CParserError: Error tokenizing data. C error: Expected 5 fields in line 2, saw 11
我还试图忽略第一行,因为列标题并不重要:

FWInds=pd.read_csv('path.csv', header=None, skiprows=0)
但是得到同样的错误

“usecols”参数也不好用,它似乎不理解我指的是列号(不是名称),除非我做得不对:

FWInds=pd.read_csv('path.csv', header=None, usecols=[5,6,7,8,9,10])

有什么建议吗?我相信这是一个简单的解决方案,但我对python非常陌生。

您可以按照如下所示进行操作:

col_name = list('ABCDEFGHIJK')
data = 'path.csv'
pd.read_csv(data, delim_whitespace=True, header=None, names=col_name, usecols=col_name[5:])

从一个文件中读取所有列的步骤→ K、 只需省略
usecols
参数即可


数据:


有几个参数可以传递给
pd.read\u csv()


有了这个,我实际上可以很好地导入您的数据(之后可以通过eg
df['K']
访问它)。

所以,您希望保留F列→ K并删除前5列?是的。不过,如果我能读入所有的专栏,我就可以在python中轻松做到这一点。这两种方法都有效。这会产生一个错误:指定的列太多:预期为11,但找到1。如果省略usecols参数,它可以工作,但是dataframe中的值都是nanIt,对于您提供的数据来说,它工作得很好。出现此错误的主要原因是
sep
与数据的格式不匹配。请尝试使用
sep
参数,并根据您的格式进行相应调整,如
sep='\s+'
我上载了在excel中打开的.csv文件的图片。我希望这会有所帮助-我基本上是复制并粘贴到问题中,这样粘贴的数据可能无法代表实际的sep!谢谢如果我使用sep=“,”并指定您所显示的列名(name=col_name),它会工作。其他参数不是必需的。虽然我仍然不能使用usecols参数,但是现在它是python的,我可以处理数据了。谢谢除了我需要使用sep=“,”……外,此功能正常。。。。。。。这是我自己的错,因为我直接从excel中的.csv文件将数据复制到问题中。
FWInds=pd.read_csv('path.csv', header=None, usecols=[5,6,7,8,9,10])
col_name = list('ABCDEFGHIJK')
data = 'path.csv'
pd.read_csv(data, delim_whitespace=True, header=None, names=col_name, usecols=col_name[5:])
data = StringIO(
'''
%m/%d/%Y,49.78,85,6,15                      
03/01/1984,6.63368,82,7,9.8,34.29056405,2.79984079,2.110346498,0.014652412,2.304545521,0.004732732
03/02/1984,6.53368,68,0,0.2,44.61471002,3.21623666,2.990408898,0.077444779,2.793385466,0.02661873
03/03/1984,4.388344,55,6,0,61.14463457,3.637231063,3.484310818,0.593098236,3.224973641,0.214360796
''')

col_name = list('ABCDEFGHIJK')
pd.read_csv(data, header=None, names=col_name, usecols=col_name[5:])
import pandas as pd
colnames = list('ABCDEFGHIKL')
df = pd.read_csv('test.csv', sep='\t', names=colnames)