PandasにSQLクエリを読み込み、値がdtype 'object'として入力されました。ただし、文字列、日付、整数です。私は日付 'オブジェクト'をPandas datetime dtypeに変換することができますが、文字列と整数を変換しようとするとエラーが発生します。ここでPandas:dtype 'object'をintに変換する
は一例です:
>>> pd.to_datetime(df['date'])
1 2016-05-22
2 2016-05-29
3 2016-05-22
4 2016-05-22
Name: date, dtype: datetime64[ns]
をしかし、整数にdf['purchase']
を変換しようとしたとき、私はエラーを取得する:日時にdf['date']
の変換
>>> import pandas as pd
>>> df = pd.read_sql_query('select * from my_table', conn)
>>> df
id date purchase
1 abc1 2016-05-22 1
2 abc2 2016-05-29 0
3 abc3 2016-05-22 2
4 abc4 2016-05-22 0
>>> df.dtypes
id object
date object
purchase object
dtype: object
作品
>>> df['purchase'].astype(int)
....
pandas/lib.pyx in pandas.lib.astype_intsafe (pandas/lib.c:16667)()
pandas/src/util.pxd in util.set_value_at (pandas/lib.c:67540)()
TypeError: long() argument must be a string or a number, not 'java.lang.Long'
注:私はを試したときに同様のエラーが発生する
文字列に変換しようとすると、何も起こっていないようです。
>>> df['id'].apply(str)
1 abc1
2 abc2
3 abc3
4 abc4
Name: id, dtype: object
にラベルを付け、私は 'DF [ '購入']しようと、推測している。astype(STR).astype( int) ' – piRSquared
文字列dtypeはありません。それはオブジェクトのままです。もう1つはもっと一般的な 'pd.to_numeric(df ['purchase'])'を試してください。それが成功すれば '.astype(int)'を追加することができます。 – ayhan
@piRSquared - はい、うまくいきました。 – cyril