質問: pd.DataFrame(df_onlyA.groupby(['品名']).size(),columns=['数']) #df.to_excel('output.xls') テスト成功 #指定のセルへ書き込み df.to_excel(EXL,"評価",index=None,header=None,startrow=4,startcol=1) #保存(生成) EXL.book.save(file_out) print("レポート出力ok") ``` エラーは出ず、数のみ反映される状態です。 お分かりになる方はご教示いただけますと幸いです。
回答: テンプレートが明示されてないので再現はできませんが、 とりあえず"ぶどう","メロン"がexcelに書き出されてないのはindex=None指定のせいです。このdfは品名がそのままindexになっているので、それを書き出さない設定にしているので当然書き出されません。 index=None指定を外すと品名も書き出されます。 あるいは、下記のように品名をindexからデータ列に戻してあげて書き出すという操作もあります。こちらのほうがご希望に近いのでしょうか。 ``` import io import pandas as pd _table = """ 品名 出荷日 ランク メロン 20160102 A りんご 20160102 B メロン 20160102 B メロン 20160102 A アップル 20160102 C ぶどう 20160102 A """ df_csv = pd.read_table(io.StringIO(_table), "\t") df_onlyA=df_csvdf_csv.ランク == "A"] df = pd.DataFrame(df_onlyA.groupby(['品名']).size(),columns=['数']) print(df) # 品名 数 # ぶどう 1 # メロン 2 df_rst = df.reset_index() print(df_rst) # 品名 数 # 0 ぶどう 1 # 1 メロン 2 EXL = "./test.xlsx" df_rst.to_excel(EXL,"評価",index=None, header=None,startrow=4,startcol=1) ``` ![出力excel