小编Han*_*Lee的帖子

获取百分比和计数 Python

假设df.bun(df 是 Pandas 数据帧)是一个多索引(日期和名称),变量是用字符串写入的类别值,

date      name             values
20170331  A122630          stock-a
          A123320          stock-a
          A152500          stock-b
          A167860          bond
          A196030          stock-a
          A196220          stock-a
          A204420          stock-a
          A204450          curncy-US
          A204480          raw-material
          A219900          stock-a
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它代表同一日期的总计数及其百分比,以便用每个日期制作如下表格,

date           variable    counts     Percentage
20170331          stock         7           70%
                   bond         1           10%
           raw-material         1           10%
                 curncy         1           10%
Run Code Online (Sandbox Code Playgroud)

我已经解决print(df.groupby('bun').count())了这个问题,但它缺乏..

cf) 在获取 df.bun 之前,我使用以下代码将嵌套字典导入到 Pandas 数据框。

import numpy as np
import pandas as pd

result = pd.DataFrame()
origDict = np.load("Hannah Lee.npy")
for item in range(len(origDict)):
    newdict = {(k1, k2):v2 …
Run Code Online (Sandbox Code Playgroud)

python percentage pandas pandas-groupby

8
推荐指数
1
解决办法
8653
查看次数

字典到多索引熊猫数据框

假设我的字典看起来像,

{('20170330', 'A'): {'earn': '16.02', 'lstdt': '2014/06/16', 'gap': '0.21','ocha': '5.44', 'nav': '77'},
('20170331', 'A'): {'earn': '25.68', 'lstdt': '2015/07/29','gap': '-1.41','ocha': '10.24', 'nav': '106'},
('20170331', 'B'): {'earn': '-', 'lstdt': '2016/09/12', 'gap':'-0.08', 'ocha': '0.79','nav': '145'}}
Run Code Online (Sandbox Code Playgroud)

我怎么能把它变成类似于面板数据的多索引数据框?

估计的结果是,

                     earn         lstdt     gap    ocha    nav
     date    name   
 20170330      A   16.02    2014/06/16    0.21    5.44     77
 20170331      A   25.68    2015/07/29   -1.41   10.24    106
               B   -        2016/09/12   -0.08    0.79    145
Run Code Online (Sandbox Code Playgroud)

python dictionary pandas

5
推荐指数
1
解决办法
2867
查看次数

标签 统计

pandas ×2

python ×2

dictionary ×1

pandas-groupby ×1

percentage ×1