質問: df.groupby("作品名", as_index=None).sum() print(df) ``` ### 試したこと 上記ソースコードでエラーに記載したような部分まではできるのですが、(1)、(2)と(3)をまとめるスキルがありませんのでご教授ください。 ### 補足情報(FW/ツールのバージョンなど) MAC OS High Sierra ver.10.13.6 Python 3.4.3 ここにより詳細な情報を記載してください。
回答: 素直に"作品名"と"巻数"を分離したDataFrameに変換しておくと良いかと思います。 ``` import pandas as pd import io s = '''作品名|著者|売上 愛してる(1)|もぎ|100 愛してる(1)|もぎ|200 愛してる(2)|もぎ|300 愛してる(2)|もぎ|400 愛してる(3)|もぎ|500 愛してる(3)|もぎ|600''' df = pd.read_csv(io.StringIO(s), encoding="utf-8", sep='\|||') df = df["作品名"].str.extract('(\D*)\((\d+)\)', expand=False).rename(columns={0:'作品名',1:'巻数'}).join(df.drop('作品名', axis=1)) # 作品名 巻数 著者 売上 #0 愛してる 1 もぎ 100 #1 愛してる 1 もぎ 200 #2 愛してる 2 もぎ 300 #3 愛してる 2 もぎ 400 #4 愛してる 3 もぎ 500 #5 愛してる 3 もぎ 600 ret = df.groupby(['作品名','著者']).agg({'売上':'sum'}).reset_index() # 作品名 著者 売上 #0 愛してる もぎ 2100 ```