2016-10-03 6 views
2

私は51,347行のデータセットを持っています。 pandasを使用してデータをインポートし、区切り文字を "|"に設定すると、私は394行を失う。delimiter = "|"を使用してインポートすると、Pandasに行がありません。

import pandas as pd 
df = pd.read_csv("Basin11.txt", sep='|', error_bad_lines=False, 
dtype={'Start Date': str, 'Greater Than/Less Than': str, 
'Parameter Code': float, 'Start Time': str, 'Start Depth': float, 'Composite Category': str, 
'Composite Type': str}) 
print(len(df.index)) 

sep変数を削除すると、データは複数の列として読み込まれることはありませんが、適切な行数が読み込まれます。それはこのファイルの問題だと思われます。 Basin11.txt File

なぜデータが失われているのか分かりますか?

+0

私は、約394行に "無料"のテキストの連続があると思います|アンエスケープerror_bad_lines = Falseはそれらの行をサイレントに無視します – Boud

+0

error_bad_lines = Falseを削除しようとしましたが、長さには影響しません。 sep = '|'以外の各引数を個別に削除しました。 – Will

答えて

2

私はあなたの入力ファイルを調べ始め、いくつかのエラーが「行が見つからない」ことにつながっている可能性があることがわかりました。

コメント行3491および9805は、開封"ですが、開封"がありません。これにより、次の行をコメント本文の一部として含むマッチングの問題が発生します。私がそれらを修正し始めたので、行数は上がり始めました。おそらくこれ以上のケースがあります。

また、いくつかの行には、コメントを開閉するための二重引用符("")があります。

"" 緑、medの潮10〜15のMPHの風 ""

編集:例えば見つけるために、python3 sample.py | grep '|' | wc -lを走った後

for comment in df['Comments'].values: 
    print(comment) 

:私は、次のコードを追加しました|が含まれているコメントの数は394です(行数が足りません)

+0

固定していただきありがとうございます!私はその後、read_csvファイルに引数quoting = 3を追加する必要がありました。 – Will

関連する問題