私は古い学校のデータベースからtsvテーブルをPandasに読み込んでいます。Pandas read_csvは不適合行を無視します
Iron Oxide (FeO) Fe1O1(cr,l)
T(K) Cp S -[G-H(Tr)]/T H-H(Tr) delta-f H delta-f G log Kf
0
100
200
298.15 49.915 60.752 60.752 0. -272.044 -251.429 44.049
300 49.999 61.061 60.753 0.092 -272.025 -251.301 43.755
400 51.840 75.704 62.737 5.187 -271.044 -244.543 31.934
.
.
.
私はスキップ最初の行:
データは次のようになります。 2行目は8列のヘッダー(タブ区切り)です。次の3行には数字と10のタブがあり、それ以降のすべての行は8フィールドです。だから3行は問題です。
私はそうのようにそれを読み込むしようとした場合:だからではなく、私は手動でこれらの3つのラインスキップするパンダを伝えることができ
:
をimport pandas as pd
FeO = pd.read_csv('JANAF-FeO.txt', skiprows=(0,), delimiter='\t', header=0)
その後、私はこれを取得
import pandas as pd
FeO = pd.read_csv('JANAF-FeO.txt', skiprows=(0,2,3,4), delimiter='\t', header=0)
これは問題ありません。
私は1つのファイルだけを読んでいた場合、それは大丈夫だと思う、私はそれらの行をスキップしてしまう行われます。しかし、多くのファイルがあり、そのうちのいくつかは8列以上の数行の可変数を持っています。それで、パンダに、ヘッダのフォーマットと一致しない行を自動的に無視させる方法がありますか?
をあなたは厄介なデータの束を持っている場合は、パンダを助けることができますが、私は、カスタムパーサーはあなたのために利用可能であるとは思いません。おそらく、線を何かにフィルタリング/モーフィングしてそこから行くいくつかのヒューリスティックを理解しなければならないでしょう。 – U2EF1
8つの列があります - 列の最大数はわかっていますか? – jezrael
常に8列にする必要があります。 – ZSG