簡體   English   中英

Pandas:在制作數據框之前跳過 read_csv() 中的任意行數

[英]Pandas: Skip an arbitrary number of lines in read_csv() before making data frame

我有一個看起來像這樣的文件:

##bunch of lines
##lines, lines and more lines
##lines
#Chr  field1  field2  field3

我寫:

import pandas as pd
df = pd.read_csv(file_name)

我得到了錯誤

Error tokenising data: Expected 1 field in line 2, saw 2

我理解這個錯誤,它在第二行看到一個逗號,但在第一行沒有看到。 無論我使用什么定界符,我總是會得到這樣的錯誤,因為 header 行中的某些行(帶有 ## 的行)有制表符、逗號等。

我實際上想刪除所有以 ## 開頭的行(它是一個.vcf 文件),我只想在帶有 #Chr 的行開始解析(即我希望文件的 rest 成為數據框,其中 #Chr field1 field2 field3 行是 header,它下面的所有內容都是數據框)。

我知道您可以使用skiprows跳過 pandas 中的行,但我的問題是我讀入的每個文件都會跳過不同數量的 ## 行。

有誰知道用 pandas 讀取 csv 的方法,我可以說“跳過所有以## 開頭的行,然后從帶有 #Chr 的行開始 dataframe 並將該行設為 header?

pd.read_csv()提供了一個on_bad_lines參數,應該可以解決您的問題

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM