Python でのデータのトークン化エラー C エラー
-
ParserError: データのトークン化エラー。 C エラー
Python で -
ParserError: データのトークン化エラーを修正する方法。 C エラー
Python で -
行をスキップして
ParserError: データのトークン化エラー。 Cエラー
-
ParserError: Error tokenizing data. 正しい区切り記号を使用して修正する Cエラー
-
dropna()
を使用してParserError: Error tokenizing data. を修正する Cエラー
-
fillna()
関数を使用してNaN
値を埋める
何らかの目的でデータを操作する場合は、データをクリーンアップすることが必須です。つまり、null 値を埋め、無効なエントリを削除してデータをクリーンアップすることで、結果に影響を与えず、プログラムがスムーズに実行されます。
さらに、ParserError: Error tokenizing data. Cエラー
は、混合データ、異なる数の列、または単一のファイルとして保存された複数のデータファイルなど、ファイルに間違ったデータを提供する可能性があります.
また、CSV ファイルを read_csv
として読み取り、別の区切り記号と行末記号を指定した場合にも、このエラーが発生する可能性があります。
ParserError: データのトークン化エラー。 C エラー
Python で
説明したように、ParserError: データのトークン化エラー。 C エラー
は、Python プログラムが CSV データを解析したときに、無効な値、null 値、未入力の列などのエラーが発生した場合に発生します。
data.csv
ファイルにこのデータがあり、それを使用して pandas
を使用して読み取りを行っているとしますが、エラーがあります。
Name,Roll,Course,Marks,CGPA
Ali,1,SE,87,3
John,2,CS,78,
Maria,3,DS,13,,
コード例:
import pandas as pd
pd.read_csv("data.csv")
出力:
ParserError: Error tokenizing data. C error: Expected 5 fields in line 4, saw 6
ご覧のとおり、上記のコードは ParserError: Error tokenizing data.
data.csv ファイルからのデータの読み取り中に C エラー
が発生しました。これは、コンパイラが 4
行で 5
フィールドを期待していたが、代わりに 6
を取得したことを示しています。
エラー自体は一目瞭然です。 エラーの正確なポイントを示し、エラーの理由も示しているため、修正できます。
ParserError: データのトークン化エラーを修正する方法。 C エラー
Python で
ここまでで、ParserError: Error tokenizing data. Cエラー
Python; それでは、それを修正する方法を見てみましょう。
結果に影響を与えたり、プログラムの実行に失敗したりする可能性があるため、分析する前にデータをクリーンアップすることを常にお勧めします。
データ クレンジングは、無効なデータ入力、null 値、および無効なエントリを削除するのに役立ちます。 基本的に、これはデータ分析の前処理段階です。
Python には、データをクリーンアップしてエラーを回避するのに役立つさまざまな関数とパラメーターがあります。
行をスキップして ParserError: データのトークン化エラー。 Cエラー
これは、行をスキップしてエラーを引き起こす最も一般的な手法の 1つです。 上記のデータからわかるように、最後の行がエラーの原因でした。
引数 on_bad_lines = 'skip'
を使用すると、バグのある行は無視され、残りはデータ フレーム df
に格納されます。
import pandas as pd
df = pd.read_csv("data.csv", on_bad_lines="skip")
df
出力:
Name Roll Course Marks CGPA
0 Ali 1 SE 87 3.0
1 John 2 CS 78 NaN
上記のコードは、エラーの原因となっているすべての行をスキップし、他の行を出力します。 出力でわかるように、最後の行はエラーの原因だったためにスキップされています。
しかし、修正が必要な NaN
値を取得しています。 そうしないと、統計分析の結果に影響します。
ParserError: Error tokenizing data. 正しい区切り記号を使用して修正する Cエラー
無効なセパレーターを使用すると、ParserError
が発生する可能性もあるため、提供するデータに応じて、正しく適切なセパレーターを使用することが重要です。
tab
を使用して CSV データまたはスペースを区切ることがあるため、プログラムでもその区切り記号を指定することが重要です。
import pandas as pd
pd.read_csv("data.csv", sep=",", on_bad_lines="skip", lineterminator="\n")
出力:
Name Roll Course Marks CGPA\r
0 Ali 1 SE 87 3\r
1 John 2 CS 78 \r
区切り文字は ,
です。これが、sep=','
と lineterminator ='\n'
について言及した理由です。行が \n
で終わるからです。
dropna()
を使用して ParserError: Error tokenizing data. を修正する Cエラー
dropna
関数は、Null
または NaN
値を含むすべての行を削除するために使用されます。
import pandas as pd
df = pd.read_csv("data.csv", on_bad_lines="skip")
print(" **** Before dropna ****")
print(df)
print("\n **** After dropna ****")
print(df.dropna())
出力:
**** Before dropna ****
Name Roll Course Marks CGPA
0 Ali 1 SE 87 3.0
1 John 2 CS 78 NaN
**** After dropna ****
Name Roll Course Marks CGPA
0 Ali 1 SE 87 3.0
2つの行しかないので、1つの行にはすべての属性がありますが、2 番目の行には NaN
値があるため、dropna()
関数は NaN
値を持つ行をスキップし、1 行だけを表示しました。
fillna()
関数を使用して NaN
値を埋める
データで NaN
値を取得すると、fillna()
関数を使用して、デフォルト値 0
を使用する他の値を置き換えることができます。
コード例:
import pandas as pd
print(" **** Before fillna ****")
df = pd.read_csv("data.csv", on_bad_lines="skip")
print(df, "\n\n")
print(" **** After fillna ****")
print(df.fillna(0)) # using 0 inplace of NaN
出力:
**** Before fillna ****
Name Roll Course Marks CGPA
0 Ali 1 SE 87 3.0
1 John 2 CS 78 NaN
**** After fillna ****
Name Roll Course Marks CGPA
0 Ali 1 SE 87 3.0
1 John 2 CS 78 0.0
fillna()
は NaN
を 0
に置き換えたので、データを適切に分析できます。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません