2016-04-25 6 views
0

3つのダミー変数を1つにまとめたい。たとえば、次のように他のダミーを組み合わせたダミー変数を作成する

×1:1 0 0 0 1

×2:0 0 0 0 1

X3: ×4:1:1の1 1 0 0 0

私が作成したいです0 0 1(3つのダミーのいずれかが1の場合は1をとり、すべてがゼロの場合は0をとります)

注:データフレーム内の変数です。したがって、新しい変数もそのデータフレームの一部になります。

私はPythonで新しく、あなたの助けに感謝します。ベスト

+0

'x1'、' x2'、および 'x3'の種類は何ですか? – vaultah

+0

これらはすべてnumpy.int64です。 – worthy

答えて

0

あなたはグリッドとしてxを定義しましょう:行ごとに

x = [ 
    [1, 0, 0, 0, 1], 
    [0, 0, 0, 0, 1], 
    [1, 1, 0, 0, 0] 
] 

、我々は行のアイテムのいずれかが1であるかどうかを確認するためにany()を使用することができます。私たちは、その後、int()で整数に結果(boolean)を変えることができます:

result = [int(any(row)) for row in x] 
+0

お返事ありがとうございます。 – worthy

0

私はあなたがデータフレームの新しいされている変数の一部で何を意味するかそうかわかりません。

私はX4を作成する最もリテラルの方法は、リスト内包でビット単位のOR演算子を使用していると思う:第一、第二を反復処理しながら、

>>> x1=[1, 0, 0, 0, 1] 
>>> x2=[0, 0, 0, 0, 1] 
>>> x3=[1, 1, 0, 0, 0] 
>>> x4=[x1[i]|x2[i]|x3[i] for i in range(len(x1))] 
>>> x4 
[1, 1, 0, 0, 1] 

リストの内包は(https://docs.python.org/3/tutorial/datastructures.html#list-comprehensionsを参照)新しいリストを作成します、x1〜x3の値など。ビット単位のOR演算子(|)(https://wiki.python.org/moin/BitwiseOperators参照)は、3つの値のいずれかが1の場合は1に、それ以外の場合は0に評価されます。

関連する問題