これはthis questionに非常に似ていますが、特定の列ではなく、データフレームの長さにコードを適用できるようにしたいという点が異なります。pandas:行小計の新しい列を追加します
私はDataFrameを持っており、各行の合計をデータフレームに列として追加しようとしています。
df = pd.DataFrame([[1,0,0],[20,7,1],[63,13,5]],columns=['drinking','drugs','both'],index = ['First','Second','Third'])
drinking drugs both
First 1 0 0
Second 20 7 1
Third 63 13 5
所望の出力:
drinking drugs both total
First 1 0 0 1
Second 20 7 1 28
Third 63 13 5 81
現在のコード:
df['total'] = df.apply(lambda row: (row['drinking'] + row['drugs'] + row['both']),axis=1)
これは素晴らしい作品。しかし、「飲酒」、「薬」、または「両方」と呼ばれていない、7つの列を持つ別のデータフレームがあればどうでしょうか?この関数をデータフレームの長さに適用するように調整することは可能ですか?そうすれば、「飲酒」、「薬」、「両方」という列を持つデータフレームだけでなく、さまざまな数の列を使用して、あらゆるデータフレームにこの機能を使用することができます。
のような何か:
df['total'] = df.apply(for col in df: [code to calculate sum of each row]),axis=1)