めも

これはメモ。

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