2017-01-07 9 views
0

の代わりにやって:dtype dictを使ってpandasカテゴリの種類を変更するには?

for col in df.columns : 
    df[col]= df[col].astype('category') 

はこれをやっている:

dtype0= {'brand': np.dtype('int64'), 
'category': np.dtype('int64'), 
'chain': np.dtype('int64'), 
'company': np.dtype('int64'), 
'date': np.dtype('O'), 
'dept': pandas.types.dtypes.CategoricalDtype, 
'id': np.dtype('int64')} 

df= df.astype(dtype0) 

しかし、それは動作しません。ちょうど不思議、どのようにdictionnaryを使用してカテゴリに変更する。

答えて

-2

あなただけがあなたのデータを読み込むとき

data = pd.read_csv('mypath.csv', dtypes = mydict) 
+0

間違っていると、http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.astype.html – Tensor

+0

@GurVのコードを読んでください。コード専用の回答は良いものではないかもしれませんが、それはまだ答えです。私はLQPRQについてこの投稿をお勧めします:[それは間違っている:低品質投稿キューの正気の嘆願](http://meta.stackoverflow.com/questions/287563/youre-doing-it-間違っているのは、質の低いポストキューであることです) – FelixSFD

+0

1)データフレームがcsv ....からロードされていないので、答えは正しくありません。2) 'only do that'もデータフレームの作成後にキャストすることができるため、正しくありません。 3)たぶん、私はただ書くだけで、慎重に文書を読むべきです... – Tensor

0

前の答えが正しくないことを行うことができます。データフレームの作成後にキャストできます。

ソリューションは、(他の人のための記録のために、ここで立ち往生)されています パンダ0.19.1

dtype0= {'brand': 'int64', 
'category': 'int64', 
'chain': 'int64', 
'company': 'int64', 
'date': 'str', 
'dept': 'category', 
'id': 'int64'} 
df= df.astype(dtype0) 

キャストはここに動作します。

関連する問題