python_analytics

主にpythonやライブラリーを使ったデータ解析、機械学習、統計学などについて書いていきます

python pandas 累積和・構成比について

python pandas 累積和・構成比について

■pandasのcumsum() を使って各データの累積和と累積構成比を算出してみる。

rename3=pd.DataFrame(rename3)
rename3['kouseihi'] = rename3[5]/ rename3[5].sum()
rename3['ruiseki'] = rename3[5].cumsum() / rename3[5].sum()
rename3.head(10)
総数 ruiseki ruiseki
1 665265 0.706619 0.706619
2 143601 0.859147 0.152528
3 56127 0.918763 0.059616
4 28285 0.948806 0.030043
5 16012 0.965813 0.017007
6 9836 0.976261 0.010447
7 6278 0.982929 0.006668
8 4120 0.987305 0.004376
9 3021 0.990514 0.003209
10 2066 0.992708 0.002194

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()')

f:id:abemasa3535:20180628121100p:plain