パンダ read_csv例外(上げるerror_bad_linesをあまりにも多くのフィールドを持つ行に遭遇したとき)。ただし、引数名が指定されている場合は発生しません。
次の形式のcsvファイルの例:
1, 2, 3
1, 2, 3
1, 2, 3, 4
pd.read_csv(filepath、header = None)で読み取ると、ParserErrorが正しく発生します:データのトークン化中にエラーが発生しました。Cエラー:列が追加されたため、3行目に3つのフィールドがあり、4つが表示されました。
ただし、「names」が引数として指定されている場合:
>>> pd.read_csv(filepath, names=['A', 'B', 'C'], header=None)
A B C
0 1 2 3
1 1 2 3
2 1 2 3
エラーは発生せず、スキップする必要のある「長すぎる/悪い」行が含まれています。
名前を指定し、それでもParserErrorを発生させて、長すぎる/不良行をerror_bad_lines = Falseで削除できるようにする方法はありますか?
これに対するきちんとしたパンダの解決策はないようです。あなたができることは、PythonでファイルCSVをロードしてopen()
から、ファイル文字列に新しいヘッダーを追加することです。この方法では、ディスク上の元のファイルを変更しません。その後、StringIO
パンダでファイル文字列をロードできます。これにより、エラーが保持されます。
#python3
from io import StringIO
import pandas as pd
lines = open('./test.csv', 'r').readlines()
lines = ['A, B, C'] + lines
fileString = '\n'.join(lines)
df = pd.read_csv(StringIO(fileString), sep=",")
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加