実現したいこと
pythonのpandasでアンケート集計をしています。
下記のようなコードを書いているのですが、for文などでもっと簡略化したいです。
該当のソースコード
python
1#質問ごとに数を集計 2df_f1q0 = df_f1.groupby([df_qnumber[0]]).count().sort_values("日付",ascending=False) 3df_f1q1 = df_f1.groupby([df_qnumber[1]]).count().sort_values("日付",ascending=False) 4df_f1q2 = df_f1.groupby([df_qnumber[2]]).count().sort_values("日付",ascending=False) 5df_f1q3 = df_f1.groupby([df_qnumber[3]]).count().sort_values("日付",ascending=False) 6df_f1q4 = df_f1.groupby([df_qnumber[4]]).count().sort_values("日付",ascending=False) 7df_f1q5 = df_f1.groupby([df_qnumber[5]]).count().sort_values("日付",ascending=False) 8# :以下つづく 9 10#上記で作った質問ごとのデータフレームを、"日付"を使ってカウント集計したものをまとめてエクセルに出す 11with pd.ExcelWriter("output.xlsx") as writer: 12 df_f1q1["日付"].to_excel(writer, sheet_name='q1') 13 df_f1q2["日付"].to_excel(writer, sheet_name='q2') 14 df_f1q3["日付"].to_excel(writer, sheet_name='q3') 15 df_f1q4["日付"].to_excel(writer, sheet_name='q4') 16 df_f1q5["日付"].to_excel(writer, sheet_name='q5') 17 # :以下つづく
試したこと
df_f1q0の0の部分に変数をうまく入れられずエラーが出てしまいます。
やりたいことのイメージ的には下記のような感じです。
python
1for i in range(): 2 df_f1q,str(i) = df_f1.groupby([df_qnumber[i+1]]).count().sort_values("日付",ascending=False) 3 4for i in range(): 5 with pd.ExcelWriter("output2.xlsx") as writer: 6 df_f1q,str(i)["日付"].to_excel(writer, sheet_name='q'+i)
当然ながらエラーが出ます。。
SyntaxError: cannot assign to function call
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/16 06:17
2021/04/16 06:24
2021/04/16 07:29
2021/04/16 08:24 編集
2021/04/20 10:11