Python 分析csv错误-应找到1个字段9

Python 分析csv错误-应找到1个字段9,python,python-3.x,pandas,csv,data-analysis,Python,Python 3.x,Pandas,Csv,Data Analysis,我正在尝试从.csv文件解析: planets = pd.read_csv("planets.csv", sep=',') 但我总是会犯这样的错误: ParserError: Error tokenizing data. C error: Expected 1 fields in line 13, saw 9 这是我的csv文件的前几行的样子: # This file was produced by the test # Tue Apr 3 06:03:27 2018 # # COLUMN

我正在尝试从.csv文件解析:

planets = pd.read_csv("planets.csv", sep=',')
但我总是会犯这样的错误:

ParserError: Error tokenizing data. C error: Expected 1 fields in line 13, saw 9
这是我的csv文件的前几行的样子:

# This file was produced by the test
# Tue Apr  3 06:03:27 2018
#
# COLUMN pl_hostname:    Host Name
# COLUMN pl_discmethod:  Discovery Method
# COLUMN pl_pnum:        Number of Planets in System
# COLUMN pl_orbper:      Orbital Period [days]
# COLUMN pl_orbsmax:     Orbit Semi-Major Axis [AU])
# COLUMN st_dist:        Distance [pc]
# COLUMN st_teff:        Effective Temperature [K]
# COLUMN st_mass:        Stellar Mass [Solar mass] 
#
loc_rowid,pl_hostname,pl_discmethod,pl_pnum,pl_orbper,pl_orbsmax,st_dist,st_teff,st_mass
1,11 Com,Radial Velocity,1,326.03000000,1.290000,110.62,4742.00,2.70
2,11 UMi,Radial Velocity,1,516.22000000,1.540000,119.47,4340.00,1.80
3,14 And,Radial Velocity,1,185.84000000,0.830000,76.39,4813.00,2.20
4,14 Her,Radial Velocity,1,1773.40000000,2.770000,18.15,5311.00,0.90
5,16 Cyg B,Radial Velocity,1,798.50000000,1.681000,21.41,5674.00,0.99
6,18 Del,Radial Velocity,1,993.30000000,2.600000,73.10,4979.00,2.30
7,1RXS J160929.1-210524,Imaging,1,,330.000000,145.00,4060.00,0.85
编辑:这是第13行:

loc_rowid,pl_hostname,pl_discmethod,pl_pnum,pl_orbper,pl_orbsmax,st_dist,st_teff,st_mass
编辑:多亏@Rakesh,跳过前12行解决了问题


planets=pd.read_csv(“planets.csv”,sep=',,skiprows=12)

看起来您需要
skiprows
。你可以跳过所有的评论

Ex:

planets = pd.read_csv("planets.csv", sep=',', skiprows=12)

看起来您需要
skiprows
。你可以跳过所有的评论

Ex:

planets = pd.read_csv("planets.csv", sep=',', skiprows=12)

当我无法找出错误的确切原因时,我就让它起作用了:

planets = pd.read_csv('planets.csv', sep=',', error_bad_lines=False)

当我无法找出错误的确切原因时,我就让它起作用了:

planets = pd.read_csv('planets.csv', sep=',', error_bad_lines=False)

除上述答案外,如果您只对第13行有问题,您可以跳过它

pd.read_csv("plants.csv", skiprows = 12, header=None)

除上述答案外,如果您只对第13行有问题,您可以跳过它

pd.read_csv("plants.csv", skiprows = 12, header=None)

我只是使用您提供的csv数据运行了以下代码,它运行时没有问题。我运行了以下命令


作为pd进口熊猫
planets=pd.read_csv(“planets.csv”,sep=',')
印刷品(行星)

话虽如此,可能存在一些问题

首先,您可以将分隔符设置为sniffing
sep=None
,让pandas知道分隔符是什么。您还可以设置
headers=None
,使其看起来像:

# This file was produced by the test
# Tue Apr  3 06:03:27 2018
#
# COLUMN pl_hostname:    Host Name
# COLUMN pl_discmethod:  Discovery Method
# COLUMN pl_pnum:        Number of Planets in System
# COLUMN pl_orbper:      Orbital Period [days]
# COLUMN pl_orbsmax:     Orbit Semi-Major Axis [AU])
# COLUMN st_dist:        Distance [pc]
# COLUMN st_teff:        Effective Temperature [K]
# COLUMN st_mass:        Stellar Mass [Solar mass] 
#
loc_rowid,pl_hostname,pl_discmethod,pl_pnum,pl_orbper,pl_orbsmax,st_dist,st_teff,st_mass
1,11 Com,Radial Velocity,1,326.03000000,1.290000,110.62,4742.00,2.70
2,11 UMi,Radial Velocity,1,516.22000000,1.540000,119.47,4340.00,1.80
3,14 And,Radial Velocity,1,185.84000000,0.830000,76.39,4813.00,2.20
4,14 Her,Radial Velocity,1,1773.40000000,2.770000,18.15,5311.00,0.90
5,16 Cyg B,Radial Velocity,1,798.50000000,1.681000,21.41,5674.00,0.99
6,18 Del,Radial Velocity,1,993.30000000,2.600000,73.10,4979.00,2.30
7,1RXS J160929.1-210524,Imaging,1,,330.000000,145.00,4060.00,0.85

pd.read_csv(“planets.csv”,sep=None,headers=None)


可能存在编码问题。您可以尝试将encoding设置为其中一些值,以查看是否存在错误

我刚刚使用您提供的csv数据运行了以下代码,并且运行时没有出现问题。我运行了以下命令


作为pd进口熊猫
planets=pd.read_csv(“planets.csv”,sep=',')
印刷品(行星)

话虽如此,可能存在一些问题

首先,您可以将分隔符设置为sniffing
sep=None
,让pandas知道分隔符是什么。您还可以设置
headers=None
,使其看起来像:

# This file was produced by the test
# Tue Apr  3 06:03:27 2018
#
# COLUMN pl_hostname:    Host Name
# COLUMN pl_discmethod:  Discovery Method
# COLUMN pl_pnum:        Number of Planets in System
# COLUMN pl_orbper:      Orbital Period [days]
# COLUMN pl_orbsmax:     Orbit Semi-Major Axis [AU])
# COLUMN st_dist:        Distance [pc]
# COLUMN st_teff:        Effective Temperature [K]
# COLUMN st_mass:        Stellar Mass [Solar mass] 
#
loc_rowid,pl_hostname,pl_discmethod,pl_pnum,pl_orbper,pl_orbsmax,st_dist,st_teff,st_mass
1,11 Com,Radial Velocity,1,326.03000000,1.290000,110.62,4742.00,2.70
2,11 UMi,Radial Velocity,1,516.22000000,1.540000,119.47,4340.00,1.80
3,14 And,Radial Velocity,1,185.84000000,0.830000,76.39,4813.00,2.20
4,14 Her,Radial Velocity,1,1773.40000000,2.770000,18.15,5311.00,0.90
5,16 Cyg B,Radial Velocity,1,798.50000000,1.681000,21.41,5674.00,0.99
6,18 Del,Radial Velocity,1,993.30000000,2.600000,73.10,4979.00,2.30
7,1RXS J160929.1-210524,Imaging,1,,330.000000,145.00,4060.00,0.85

pd.read_csv(“planets.csv”,sep=None,headers=None)

可能存在编码问题。您可以尝试将encoding设置为其中一些值,以查看是否存在错误。函数从第一行获取列数及其名称。默认情况下,它不考虑第一行的选项是注释。 熊猫读取第一行,将其拆分,发现只有一列,在对第13行进行拆分的同时,第13行是第一个未注释的行。要解决这个问题,可以使用参数
comment

planets = pd.read_csv("planets.csv", comment='#')
与使用
skiprows
相比,这允许相同的代码加载
planers.csv
文件,即使注释行数不同。

该函数从第一行获取列数及其名称。默认情况下,它不考虑第一行的选项是注释。 熊猫读取第一行,将其拆分,发现只有一列,在对第13行进行拆分的同时,第13行是第一个未注释的行。要解决这个问题,可以使用参数
comment

planets = pd.read_csv("planets.csv", comment='#')


与使用
skiprows
相比,这允许相同的代码加载
planers.csv
文件,即使注释行数不同。

您可能需要检查第13行。您应该在第13行中发布数据,这将提供更多信息clue@NEOmen这是第13行:loc_rowid,pl_hostname,pl_discmethod,pl_pnum,pl_orbber,pl_orbsmax,st_dist,st_teff,st_Mass 1-12线是什么?您想在那里阅读信息吗?@xg.plt.py这些只是包含文件中数据信息的注释。您可能需要检查第13行。您应该在第13行发布数据,这将提供更多信息clue@NEOmen这是第13行:loc_rowid、pl_hostname、pl_discmethod、pl_pnum、pl_orbber、pl_orbsmax、st_dist、st_teff、,那么1-12号线是什么?你想阅读那里的信息吗?@xg.plt.py这些只是包含文件中数据信息的注释。这跳过了csv文件中的所有行。你能发布你问题的前20行吗?是的,更新后的代码片段很有魅力,谢谢:)这跳过了csv文件中的所有行。你能发布你问题中的前20行吗?是的,更新后的代码片段很有魅力,谢谢:)再次,这跳过了csv文件中的所有行。再次,这跳过了csv文件中的所有行。欢迎你,我记不住
read_csv
的所有选项,我必须经常检查文档,没有问题:)。不客气,我记不住
read_csv
的所有选项,我必须经常检查文档,没有问题:)。