1

pandas/Python で read_table コマンドを使用して、タブ区切りのテキスト ファイルをインポートしています。

q_data_1 = pd.read_table('data.txt', skiprows=6, dtype={'numbers': np.float64})

...しかし、得る

AttributeError: 'NoneType' object has no attribute 'dtype'

dtype パラメータがない場合、列は「オブジェクト」dtype としてインポートされます。

「数値」列にはデータが欠落しており、インポートが失敗していると思います。これらの値を無視するにはどうすればよいですか?

編集 (25-May-13): (i) 時刻 (例: '00:03:06') (ii) 日付 (例: '2002-03-11') とパーセンテージ ( 「32.81%」)? これらはすべてオブジェクトに変換されます。(反映するように Q を編集しました) (iv) 適切な dtype に変換するためのカンマ付きの数字 (例: '10,982')?

4

1 に答える 1

1

(dtypeを制限せずに)DataFrameを読み込んだ後、(この投稿の手法を使用して)次のように変換できますapply

import locale
locale.setlocale( locale.LC_ALL, 'en_US.UTF-8')
df = pd.DataFrame([['1,002.01'], ['300,000,000.1'], ['10']], columns=['numbers'])

In [4]: df['numbers']
Out[4]:
0         1,002.01
1    300,000,000.1
2               10
Name: numbers, dtype: object

In [5]: df['numbers'].apply(locale.atof)
Out[5]:
0    1.002010e+03
1    3.000000e+08
2    1.000000e+01
Name: numbers, dtype: float64

In[6]: df['numbers'] = df['numbers'].apply(locale.atof)
于 2013-05-24T18:56:09.727 に答える