演習課題「言語ごとのバイト数のランキング」
右のコードエリアではsubmissions変数にスキルチェックの提出データがDataFrameとして代入されています。submissionsをlanguage列でグループ分けしてbytes列を選択し、それの平均値をとって値を昇順でソートしたものに対して、その値をx軸、インデックスをy軸にとった横倒し棒グラフをseabornのbarplotメソッドで描画してください(結果は言語ごとのバイト数の平均値のグラフになります)。採点の前にはすべてのセルを実行し、ノートブックを保存してください。
#03:テーブルごとのデータ分析
このチャプターでは、読み込んだデータをテーブルごとに分析します。
import pandas as pd
import seaborn as sns
problems = pd.read_csv("csv/data_problems.csv")
submissions = pd.read_csv("csv/data_submissions.csv")
problems.columns = ["problem_name", "rank", "difficulty"]
submissions.columns = ["problem_name", "bytes", "score", "language", "time"]
submissions = submissions.dropna()
lang_counts = submissions["language"].value_counts()
sns.barplot(x=lang_counts.values, y=lang_counts.index, orient="h")
grouped_by_rank = problems.groupby("rank")
diff = grouped_by_rank.mean().sort_values(by="difficulty")
sns.barplot(data=diff, x=diff.index, y="difficulty")
正解データでないと実行速度の参考にならないので最初にフィルタリングする。accepted = submissions.query("score == 100")
grouped_by_lang_ac = accepted.groupby("language")
exec_time = grouped_by_lang_ac["time"].mean().sort_values()
sns.barplot(x=exec_time.values, y=exec_time.index, orient="h")