我正在尝试从网络下载 CSV 文件。但是,前 20 行是列定义,数据从第 24 行开始(中间的行是空白)。
我的代码是:
data = pd.read_csv(fileURL, skiprows=[23], on_bad_lines='skip')
返回的是作为两列数据框的列定义, 20k 行数据被忽略
如果没有 - on_bad_lines - 我收到错误,因为初始文本是两列宽度,而数据是 18 列
- skiprows[23] - 不跳过列定义 两个开关的顺序没有区别。
skiprows 本身会引发“错误标记数据”错误
有什么建议吗?
可以使用
skiprows
参数跳过行,并使用
header
参数指定标题所在的行。在本例中,要跳过前 23 行,并将第 24 行设为标题。
以下是更新后的代码:
data = pd.read_csv(fileURL, skiprows=23, header=0, on_bad_lines='skip')
这将跳过前 23 行,使用第 24 行作为标题,并使用其余行作为数据。
on_bad_lines='skip'
参数将跳过任何格式错误的行,这在处理包含错误数据的 CSV 文件时很有用。
如果这不起作用,还可以尝试使用
engine='python'
参数,这将使用 Python 的内置 CSV 解析器而不是 C 引擎。Python 引擎通常更灵活,可以处理更多类型的格式错误。
data = pd.read_csv(fileURL, skiprows=23, header=0, on_bad_lines='skip', engine='python')
如果仍然有问题,请分享的 CSV 文件示例,以便我可以提供更具体的帮助。
标签:python,dataframe,csv From: 78772700