のは、私は、次のデータフレームがあると仮定してみましょう:このデータフレームに基づいてデータフレームに固有の値に基づいて、多数の列を生成
user_id | a1 | a2 | a3 | a4 | a5 | ... | a100
1 | 12 | 30 | 0 | 12 | 1 | ... | 21
2 | 2 | 13 | 18 | 13 | 13 | ... | 3
3 | 42 | 31 | 5 | 14 | 26 | ... | 41
4 | 1 | 9 | 10 | 15 | 20 | ... | 23
を、私は、のいずれかのユニークな値のための追加列を生成したいですa1-a100の列。私は例を挙げてこれを説明する方が良いと思います。上記データフレームに基づいて、私は、元のデータフレームに付加され、次の列だろう:例えば
1AndAbove | 2AndAbove | ... | 42AndAbove
5 | 4 | ... | 0
6 | 6 | ... | 0
6 | 6 | ... | 2
6 | 5 | ... | 0
を42AndAbove列の値のみが第3ユーザが42に等しい値とグレータを有することを示し、それは2度持っています。
私は、次のコードを使用していずれかで、このいずれかを行うことができる午前:
df['1AndAbove'] = (df > 1).astype(int).sum(axis=1)
私は100列を生成する必要がある場合は、これは非常に面倒です。これを行うためのより一般的でエレガントな方法があるのだろうか?
あなたができるはずですが、簡単にループの中でそれを行う、わからない、それを行うためのベクトル化方法があれば。 – Zero
@JohnGalt以下のベクター化された方法 – Boud