質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

3回答

723閲覧

データフレーム内の複数あるデータの集計について

退会済みユーザー

退会済みユーザー

総合スコア0

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/01/16 15:15

日本のイベントをまとめたデータフレーム【df_event】があります。
df_event["協賛会社"]のデータから、matplotlibで可視化をしたいと考えています。

まずはdf_event["協賛会社"]のデータの集計をしようと思ったのですが、どうやら下記のように協賛会社が複数のところもあり、上手く集計することができません。。
【理想の形】にするために何かいい方法はないでしょうか?
どなたかお力添えをよろしくお願いいたします。。

【df_event】
|イベント名|都道府県名|費用(万円)|協賛会社|開催|
|:--|:--:|--:|
|〇〇祭り|北海道|780|A社|1985/4/11|
|□□大会|北海道|467|B社|1940/10/24|
|・|・|・|・|・|
|△△パーティー|東京都|428|C社、D社|2007/1/22
|●●祭|神奈川県|591|E社、F社、A社|2002/9/1|
|・|・|・|・|・|
|✖︎✖︎生誕祭|大阪府|227|G社、B社|1967/10/2
|■■ディナーショー|大阪府|74|C社|1999/3/30|
|・|・|・|・|・|・|
|▲▲イベント|沖縄|356|D社、E社、F社|1963/3/14

【現状】

Python

1[In] 2df_event_corporation = df_event["協賛会社"].value_counts().sort_values(ascending=False) 3df_event_corporation 4--------------------------------------------------------- 5[Out] 6A社 294 7B社 258 8C社 199 9D社 102 101112F社 52 13A社、B社 2 14C社、D社 2 15D社、E社、F社 1 16E社、F社、A社 1 1718

【理想の形】

[Out] A社 322 B社 279 C社 230 D社 183 E社 142 ・ ・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Python

1df_event["協賛会社"].str.get_dummies(sep='、').sum()

ですね。

投稿2020/01/17 00:37

kirara0048

総合スコア1399

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

magichan

2020/01/17 01:38

素晴らしい。.str accessorにこんな便利なmethodがあるとは、今まで気が付きませんでした。
退会済みユーザー

退会済みユーザー

2020/01/17 03:15

ありがとうございます!! こんなに簡単に集計できるなんて、、助かりましたm(_ _)m
guest

0

こんにちは

以下のようにして、協賛会社と回数を持つDataFrameを作るのはいかがでしょうか?

Python3

1from collections import Counter 2

Python3

1sponsors_cnt = Counter() 2 3for i, v in df_event["協賛会社"].iteritems(): 4 sponsors_cnt.update(v.split('、')) 5 6df_sponsors = pd.DataFrame( 7 columns=["協賛会社", "回数"], 8 data=sorted(sponsors_cnt.items(), key=lambda x: x[1], reverse=True) 9)

上記では、協賛会社と回数を持つDataFrame df_sponsors を作成し、協賛回数の多い順に、各社の回数データを追加しています。

投稿2020/01/16 16:11

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/17 03:16

ありがとうございます!!
guest

0

サンプルです。

Python

1df 2# col 3#0 A 4#1 B 5#2 A,B 6#3 B 7#4 C 8 9df['col'].str.contains('A').sum() 10#2

投稿2020/01/16 15:46

meg_

総合スコア10580

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問