LabelEncoder
とOneHotEncoder
に文字列を変換するnumpyの配列、のためにかなり良い作品を0,1
ベースとするベクター。
私の質問は、パンダのデータフレームの列を0, 1
ベクトルに変換するための優れたAPIはありますか?私は私のコードとパンダのデータフレームの生の内容を示し123.csv
、私はバイナリにしたいと仮定し0, 1
た列のためにc_a
、c_b
、c_c
私はバイナリにしたい、3列のそれぞれは独立しており0, 1
、別々に独立したため。
コード、
import pandas as pd
sample=pd.read_csv('123.csv', sep=',',header=None)
print sample.dtypes
123.csvコンテンツ、
c_a,c_b,c_c,c_d
hello,python,pandas,1.2
hi,c++,vector,1.2
numpyのラベルエンコーダーとOneHotEncoderの例、
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
S = np.array(['b','a','c'])
le = LabelEncoder()
S = le.fit_transform(S)
print(S)
ohe = OneHotEncoder()
one_hot = ohe.fit_transform(S.reshape(-1,1)).toarray()
print(one_hot)
which results in:
[1 0 2]
[[ 0. 1. 0.]
[ 1. 0. 0.]
[ 0. 0. 1.]]
編集1、試してみましたがget_dummies
、結果は0.0
と1.0
(のようですfloat
)のようですが、整数に直接変換する方法はありますか?
0_c_a 0_hello 0_hi 0_ho 1_c++ 1_c_b 1_java 1_python 2_c_c 2_numpy \
0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0
1 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
2 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
3 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0
お探しget_dummies
ですか?
s = pd.Series(["a", "b", "a", "c"])
pd.get_dummies(s)
あなたが望むならints
:
pd.get_dummies(s).astype(np.uint8)
参照:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加