13

pandas.read_csvを使用して、値が欠落している.txtを読み取ろうとしています。私のデータの形式は次のとおりです。

10/08/2012,12:10:10,name1,0.81,4.02,50;18.5701400N,4;07.7693770E,7.92,10.50,0.0106,4.30,0.0301
10/08/2012,12:10:11,name2,,,,,10.87,1.40,0.0099,9.70,0.0686

ポイントの同じ名前、GPS位置、およびその他の読み取り値を持つ何千ものサンプルがあります。私はコードを使用します:

myData = read_csv('~/data.txt', sep=',', na_values='')

na_valuesはNaNまたは他のインジケーターを提供しないため、コードは間違っています。列は同じサイズである必要がありますが、私は異なる長さで仕上げます。

na_valuesの後に正確に何を入力する必要があるのか​​わかりません(すべての異なることを試しました)。ありがとう

4

2 に答える 2

14

パラメータna_valuesは「listlike」である必要があります(この回答を参照)。

文字列は「リストのような」ので、次のようになります。

na_values='abc' # would transform the letters 'a', 'b' and 'c' each into `nan`
# is equivalent to
na_values=['a','b','c']

同様に:

na_values=''
# is equivalent to
na_values=[] # and this is not what you want!

これは、を使用する必要があることを意味しますna_values=['']

于 2012-09-20T14:22:29.617 に答える
4

パンダのどのバージョンを使用していますか?空の文字列をNaNとして解釈することは、パンダのデフォルトの動作であり、v0.7.3と現在のマスターの両方で、na_valuesパラメーターをまったく使用せずに、データスニペットの空の文字列を適切に解析するようです。

In [10]: data = """\
10/08/2012,12:10:10,name1,0.81,4.02,50;18.5701400N,4;07.7693770E,7.92,10.50,0.0106,4.30,0.0301
10/08/2012,12:10:11,name2,,,,,10.87,1.40,0.0099,9.70,0.0686
"""

In [11]: read_csv(StringIO(data), header=None).T
Out[11]: 
                   0           1
X.1       10/08/2012  10/08/2012
X.2         12:10:10    12:10:11
X.3            name1       name2
X.4             0.81         NaN
X.5             4.02         NaN
X.6   50;18.5701400N         NaN
X.7    4;07.7693770E         NaN
X.8             7.92       10.87
X.9             10.5         1.4
X.10          0.0106      0.0099
X.11             4.3         9.7
X.12          0.0301      0.0686
于 2012-09-20T15:41:55.347 に答える