2016-07-06 6 views
0

次のように、最後の行にはtextに列がありません。 read_csvDataFrameNaNの値で返すのではなく、例外を発生させたい。これは可能ですか?pandas#read_csvを作成する方法一部の列が欠落したときに例外が発生する

len(row.split(sep)) < len(columns)の場合、列が欠落している行。

In [1]: import pandas as pd 

In [2]: from io import StringIO 

In [3]: text = """x,y,z 
    ...: 1,2,3 
    ...: 4,5,6 
    ...: 7,8""" 

In [4]: df = pd.read_csv(StringIO(text)) 

In [5]: df 
Out[5]: 
    x y z 
0 1 2 3 
1 4 5 6 
2 7 8 NaN 
+0

@Merlin 'len(row.split(sep)) Eastsun

+0

列全体ではなく、データが欠落しています。最高の解決策はcsvreaderです。それは行数を強制することができます。 – Merlin

+0

ハッキーな方法: 'pd.read_csv(...、na_filter = False、dtype = float)'が発生します。 'dtype'は型の宣言です。しかし、文字列では機能しません。 – ptrj

答えて

1

docsによると、あなたが求めている何をすべきかread_csv機能を取得する簡単な方法がありますようにそれは見ていません。

ただし、df.isnull().values.any()を使用できます。この文は、NaNdfに存在する場合はTrue、それ以外の場合はFalseと評価されます。ですから、あなたのCSVを読み込んだ直後には、次のように書くことができます:

HTH。

関連する問題