日本のイベントをまとめたデータフレーム【df_event】があります。
df_event["協賛会社"]のデータから、matplotlibで可視化をしています。
今回はそれぞれのイベントの["協賛会社"]の数を調べて箱ひげ図を作成したいと考えています。
そのための下処理としてdf_event["協賛会社"]の要素を会社名から会社数を数えた数字に置き換えたSiries(df_event["協賛会社数"])を作るにはどのような方法がありますでしょうか?
どなたかお力添えをよろしくお願いいたします。。
ちなみに下記コードで作成しようとすると、同一のイベント名があるときに .count() では会社数がまとめられてしまい、正しい値を抽出することができません。(正しい箱ひげ図が描写できません)
何かアドバイスをいただけたらと思います。。
【理想の形】
python
1from io import StringIO 2import pandas as pd 3import japanize_matplotlib 4 5 6data = StringIO( 7""" 8イベント名,都道府県名,費用(万円),協賛会社,協賛会社数, 9〇〇祭り,北海道,780,A社,1 10□□大会,北海道,467,B社、F社、H社、K社、L社,5 11△△パーティー,東京都,428,C社、D社,2 12●●祭,神奈川県,591,E社、F社、A社、C社,4 13□□大会,三重県,193,N社、Q社、H社、A社,4 14✖︎✖︎生誕祭,大阪府,227,G社、B社,2 15■■ディナーショー,大阪府,74,C社,1 16□□大会,福岡県,347,B社、K社、J社、O社、E社、F社,6 17▲▲イベント,沖縄,356,D社、E社、F社,3 18""" 19) 20df_event = pd.read_csv(data) 21 22tmpa = df_event['協賛会社'].str.split('、', expand=True).unstack().rename('協賛会社') 23tmpa = tmpa.reset_index(level=0).dropna() 24df_event = df_event.drop(columns=['協賛会社']).merge(tmpa, left_index=True, right_index=True, how='right') 25company = df_event.groupby('イベント名').count()["協賛会社"] 26 27>company 28イベント名 29■■ディナーショー 1 30□□大会 15 #現状では□□大会がまとめられてしまっている 31▲▲イベント 3 32△△パーティー 2 33●●祭 4 34✖︎✖︎生誕祭 2 35〇〇祭り 1
回答1件
あなたの回答
tips
プレビュー