2016-10-16 32 views
1

私は列ごとに新しい値で行方不明のカテゴリセルを記入したいと思います。たとえば:パンダを使用してカテゴリ値を入力しないでください。

c1 c2 c3 
a nan a 
b q nan 
c d nan 
a p z 

c1 c2 c3 
a n1 a 
b q n2 
c d n2 
a p z 

のようなものになるはずです私の現在の問題は、私はcategorials列にDictVectorizerを使用していますということですが、それはそのままであるNaNを残します。いくつかのuniqの文字列と

+1

一つの方法を提供します。 Amelia IIのドキュメントには、欠落しているデータの問題とその解決策が詳細に記載されているので、このドキュメントを読むことをお勧めします。さらに、いくつかの平均値を記入することは明らかに悪い考えであり、これに関する文献がいくつかあります。 – Sycorax

+0

@amoeba pandasは、Rの 'data.frame'と' data.table'に似たデータフレーム機能を追加するPythonモジュールです。 – Sycorax

+0

@Sycoraxはい、わかっています。 –

答えて

0

Fillnaは、あなたが欲しいものを行います。

categorial_data = pd.DataFrame({'sex': ['male', 'female', 'male', 'female'], 
           'nationality': ['American', 'European', float('nan'), 'European']}) 
print(categorial_data) 
categorial_data=categorial_data.fillna('some_unique_string') 
print('after replacement') 
print(categorial_data) 
encoder = DV(sparse = False) 
encoded_data = encoder.fit_transform(categorial_data.T.to_dict().values()) 
print(encoded_data) 

はあなたに転嫁と呼ばれる欠損値を埋め

nationality  sex 
0 American male 
1 European female 
2   NaN male 
3 European female 
after replacement 
      nationality  sex 
0   American male 
1   European female 
2 some_unique_string male 
3   European female 
[[ 1. 0. 0. 0. 1.] 
[ 0. 1. 0. 1. 0.] 
[ 0. 0. 1. 0. 1.] 
[ 0. 1. 0. 1. 0.]] 
関連する問題