Python
1import pandas as pd 2import matplotlib as plot 3import matplotlib.pyplot as plt 4import numpy as np 5import matplotlib.font_manager as fm 6dfs = pd.read_csv("C:/Users/detec/desktop/coronaTokyo3.csv") 7cat = pd.api.types.CategoricalDtype(categories = ['10歳未満','10代','20代','30代','40代','50代','60代','70代','80代','90代'],ordered=True) 8dfs['age'] = dfs['age'].astype(cat) 9dfs["age"].head 10#csvファイル内の数字と文字列のデータを一度カテゴリ型データへ。 11 12dfs.isnull().sum() 13dfs.dropna(subset=['age'], axis=0, inplace=True) 14vc = dfs["age"].value_counts() 15print(vc) 16#”調査中”というデータの削除 17 18dfs['age'] = dfs['age'].map({'10歳未満': 0,'10代': 10,'20代': 20,'30代': 30,'40代': 40,'50代': 50,'60代': 60,'70代': 70,'80代': 80,'90代': 90}) 19#数値への置き換え 20 21dfs['age'] = dfs['age'].astype(int) 22#intデータにする 23 24fm.findSystemFonts() 25font_location = 'C:\Windows\Fonts\BIZ-UDMinchoM.ttc' 26font_name = fm.FontProperties(fname=font_location).get_name() 27plt.rc('font',family=font_name) 28#フォントの調整 29 30bins = np.arange(11) 31labels = [f"10歳未満" if x == 0 else f"{x}0代" for x in range(10)] 32freq, bins = np.histogram(dfs['age'], bins=bins) 33x = np.arange(len(bins) - 1) 34#ラベルの調整 35 36fig, ax = plt.subplots() 37ax.bar(x, freq) 38ax.set_xticks(x) 39ax.set_xticklabels(labels) 40ax.set_xlabel("Age") 41plt.show() 42#描画 43 44freq.shape
その結果が、以下の画像になります。
なぜか10代~80代のデータが反映されていません。
なにかコードに問題があるでしょうか?
回答1件
あなたの回答
tips
プレビュー