私のシステムは、各行の最大を含む、列名
のWindows 7、64ビット対応パンダのデータフレームに列を追加
のpython 3.5.1
挑戦
これは簡単だと思いますが、私の能力の中では達成するのが難しく、説明するのも難しいです。私は、以下の再現可能な例が問題を明らかにしてくれることを願っています。同様の質問が依頼され、this postのRについて答えられました。
私はパンダのデータフレームを持っており、各行の最大値を知り、その情報を新しい列として追加したいと考えています。また、最大値が置かれている列の名前も知りたいと思います。そして、私は最大値が見つかる列の名前を含む既存のデータフレームに別の列を追加したいと思います。
再現例
In[1]:
# Make pandas dataframe
df = pd.DataFrame({'a':[1,0,0,1,3], 'b':[0,0,1,0,1], 'c':[0,0,0,0,0]})
# Calculate max
my_series = df.max(numeric_only=True, axis = 1)
my_series.name = "maxval"
# Include maxval in df
df = df.join(my_series)
df
Out[1]:
a b c maxval
0 1 0 0 1
1 0 0 0 0
2 0 1 0 1
3 1 0 0 1
4 3 1 0 3
これまでのところは良いです。私は複数の列が同じ最大値が含まれている場合は、すべてのカラム名を返したいのですが
In[2]:
?
?
?
# This is what I'd like to accomplish:
Out[2]:
a b c maxval maxcol
0 1 0 0 1 a
1 0 0 0 0 a,b,c
2 0 1 0 1 b
3 1 0 0 1 a
4 3 1 0 3 a
お知らせ:今すぐの列パーツの名前を含む既存のデータフレームに別の列を追加します。また、コラムmaxvalはmaxcolには含まれていないことに気づくでしょう。誰もがこの興味深いフィンをあらかじめありがとう。