めも

メモ.

pandas.Dataframe からユニークな要素とその数を数えてプロットする

説明

pandas.Series.sort_values など pandas.Series の関数を使用する。

  • dummy_data.value_counts(): Seriesデータに含まれる要素ごとの出現回数をカウント
  • dummy_data.value_counts().index.values: 各要素ごとの名前(indexの名前)の値を.valuesから取得

コード

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

%matplotlib inline # jupyter notebookを使用する場合

dummy_data = pd.Series([np.random.randint(0, 30) for i in range(1000)],
                       index=["sampledata"+str(i) for i in range(1000)])

ind_vals = dummy_data.value_counts().values
ind_names = dummy_data.value_counts().index.values # 各要素の名前
ind_N = dummy_data.value_counts().values.shape[0] # ユニークな要素の数
ind = np.arange(ind_N) # ラベルを配置するための配列

plt.figure(figsize=(10, 20))
plt.subplot(211)
plt.bar(ind, ind_vals)
plt.xticks(ind, ind_names, rotation=90)
plt.tight_layout()
plt.xlim(-1, ind_N+1)

plt.subplot(212)
plt.pie(ind_vals,
        labels=ind_names,
        startangle=0)

plt.savefig("result.png")

結果

f:id:misos:20180919194107p:plain

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。