#やりたいこと
multiple = [1, 2, 3....]とリストがあるとき、DataFrameの0行目を1倍、1行目を2倍、3行目を3倍... としていって、掛け算し終わった後のDataFrameを取得したいと思っています。
以下のようなイメージです。
python3
1import pandas as pd 2 3df = pd.DataFrame({ 4 'A': [10, 20], 5 'B': [10, 20]}, 6 index=[1, 2]) 7 8# A B 9#1 10 20 10#2 10 20 11 12# 各列を何倍するか 13multiple = [2, 3] 14 15 16# ほしい結果 17 18# A B 19#1 20 60 20#2 20 60
どの列を何倍するかは、リスト形式でmultiple = [2, 3]のような形で持っているとします。
この処理がどうもうまくできません。
df['A'] * 2 と、1列ずつ手作業で処理する方法ではなく、列が増えても対応できるようにループでやりたいです。
試したこと
いろいろトライしたのですが、エラーで全くうまくいってないので、やりたかったことのイメージがわかりやすい(気がする)失敗例だけ書きます。。伝わればよいのですが。。
python3
1df_new = pd.DataFrame() 2 3count =0 4for _, data in df.iteritems(): 5 # dataの1個目はSeriesになってるはずですが、この時点で乗算ができません。。 6 series = data[1] * multiple[count] 7 pd.concat([df_new, series.to_frame()]) 8 count += 1
教えていただけますと幸いです。
何卒よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/03 06:06
2021/08/03 06:09