Open3

Pandas

kaorumorikaorumori

pyenvで構築したAnaconda環境でPandasのPlotを日本語化

PandasのPlotでデータの可視化をしていました。データのラベルを日本語にすると文字化けしていたので、以下の方法で解決しました。

IPAゴシックのTTFファイルをダウンロードして、以下のコマンドでコピーします。

$ cp ipaexg.ttf /Users/username/.pyenv/versions/anaconda3-2019.10/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/

フォントのキャッシュファイルを削除します。

$ rm .matplotlib/fontlist-v310.json

Pyhtonでは以下のようにフォントを指定します。

from matplotlib import pylab as plt
plt.rcParams['font.family'] = 'IPAexGothic'

これで文字化けしないで画像が出力されるようになりました。

https://qiita.com/maroKanatani/items/3b080c639395bba7795a

kaorumorikaorumori

Pandasでデータをビン分割して集計

データを一定の条件で分割して集計する処理があります。これまで私はTableauではそういった集計をしていましたが、Pandasでもきっとできるだろうと思って調べて使いました。

https://note.nkmk.me/python-pandas-cut-qcut-binning/

df['bin'] = pd.cut(df['value'], list(range(0, 30, 3)))

binには(15, 18]のような値が入ります。この場合は15より大きく18以下の条件という意味になります。

binでグループ化して集計します。

df.groupby('bin').mean()
kaorumorikaorumori

2つの偏差値の計算方式とPandasでの実装

データの偏差値を計算することがあり、その際に標準偏差の考え方について以下のポイントを反映しました。

https://mathwords.net/stdev

  • 「母集団の一部」のデータに対しては、不偏標準偏差であるSTDEV
  • 「母集団全体」のデータに対しては、標準偏差であるSTDEVP

これをPandasの計算にも反映させます。

https://teratail.com/questions/223304

# 計算対象が母集団の一部
df['偏差値'] = (df['value'] - df['value'].mean()) /
        df['value'].std() * 10 + 50
# 計算対象が母集団の全部
df['偏差値'] = (df['value'] - df['value'].mean()) /
        df['value'].std(ddof=0) * 10 + 50

https://twitter.com/karino2012/status/1360420111232864266

https://twitter.com/karino2012/status/1360420756660707330

https://twitter.com/karino2012/status/1360420908817522693

https://twitter.com/karino2012/status/1360421396325617666

https://twitter.com/karino2012/status/1360421698625892354