Jupyter lab で水平表示させる
Jupyter lab で水平表示させる
Jupyter lab おまじないのコード paddingで表示間隔の設定が可能
class display(object): """Display HTML representation of multiple objects""" template = """<div style="float: left; padding: 10px;"> <p style='font-family:"Courier New", Courier, monospace'>{0}</p>{1} </div>""" def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
3つのコマンドを実行
aa=report.groupby("日")[["いいね"]].aggregate(["mean", "median",max,min,sum]).head() bb=report.groupby("日")[["リツイート"]].aggregate(["mean", "median",max,min,sum]).head() display('aa.head()', 'bb.head()')
pandas グラフseabornについて
pandas seabornについて
■折れ選グラフの作成
ax = tuki.plot(figsize=(16,4),title="Viral IMP") ax1 =ni.plot(figsize=(16,4),title="Viral IMP") plt.xticks(range(0,31)) ax.set_xlabel("month",fontsize=20,) plt.legend()
■回帰分析の作成
sns.jointplot(x='page_actions_post_reactions_like_total', y='page_posts_impressions_viral', data=merge,kind="reg") sns.jointplot(x='page_actions_post_reactions_like_total', y='page_posts_impressions_viral', data=san,kind="reg")
■ヒストグラムの作成
##ヒストグラム fig = plt.figure(figsize=(14, 10)) fig.add_subplot(221) sns.distplot(san[san.columns[1]],bins=5) fig.add_subplot(222) sns.distplot(hachi[hachi.columns[1]],bins=5) fig.add_subplot(223) sns.distplot(kyu[kyu.columns[1]],bins=5) fig.add_subplot(224) sns.distplot(jyu[jyu.columns[1]],bins=5,label="sassssss")
■単一折れ線グラフの作成
##ヒストグラム fig = plt.figure(figsize=(14, 12)) fig.add_subplot(221) x = san[san.columns[1]] plt.xlim([0,10000]) plt.ylim([0,0.001]) plt.title("ViralImp_2018_03",fontsize=16) x = pd.Series(x, name="Viralimpression",) ax = sns.distplot(x,color="y") fig.add_subplot(222) x = ni[ni.columns[1]] plt.xlim([0,10000]) plt.ylim([0,0.001]) plt.title("ViralImp_2018_02",fontsize=16) x = pd.Series(x, name="Viralimpression",) ax = sns.distplot(x) fig.add_subplot(223) x = ichi[ichi.columns[1]] plt.xlim([0,10000]) plt.ylim([0,0.001]) plt.title("ViralImp_2018_01",fontsize=16) x = pd.Series(x, name="Viralimpression",) ax = sns.distplot(x) fig.add_subplot(224) x = jyu[jyu.columns[1]] plt.xlim([0,10000]) plt.ylim([0,0.001]) plt.title("ViralImp_2017_10",fontsize=16) x = pd.Series(x, name="Viralimpression",) ax = sns.distplot(x)
plt.figure(figsize=(10, 3)) plt.ylim([2000,10000]) sns.pointplot(x="日", y='page_actions_post_reactions_like_total', data=ni) plt.figure(figsize=(10, 3)) plt.ylim([2000,10000]) sns.pointplot(x="日", y='page_actions_post_reactions_like_total', data=jyu,color="red") plt.figure(figsize=(10, 3)) plt.ylim([2000,10000]) sns.pointplot(x="日", y='page_actions_post_reactions_like_total', data=hachi,color="pink")
plt.figure(figsize=(30, 15)) sns.heatmap(dd, annot=True,annot_kws={'size': 10},fmt='.1f')
■条件分岐で外れ値を精査
for i in range(len(report)): if report.ix[i, 'リツイート'] >1000 or report.ix[i, 'URLクリック数'] >1000: report = report.drop(i)