获取百分比和计数Python

2024-09-30 18:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

supoptosedf.bun(df是Pandas dataframe)是一个多索引(日期和名称),变量是以字符串形式写入的类别值

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

我怎样才能使它代表同一日期的总计数,以及它的百分比,使表格与每个日期类似

^{pr2}$

我已经做了print(df.groupby('bun').count())作为这个问题的一个手段,但是它缺少。。在

cf)在获得df.bun公司我使用以下代码将嵌套字典导入Pandas dataframe。在

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 for k1,v1 in origDict[item].items() for k2,v2 in origDict[item][k1].items()}
    df = pd.DataFrame([newdict[i] for i in sorted(newdict)],
                      index=pd.MultiIndex.from_tuples([i for i in sorted(newdict.keys())]))
    print(df.bun)

Tags: inimportdataframepandasdfforasstock
1条回答
网友
1楼 · 发布于 2024-09-30 18:19:21

我认为需要^{}

g = df.groupby('date')['values']
df = pd.concat([g.value_counts(), 
                g.value_counts(normalize=True).mul(100)],axis=1, keys=('counts','percentage'))
print (df)
                       counts  percentage
date     values                          
20170331 stock-a            6        60.0
         bond               1        10.0
         curncy-US          1        10.0
         raw-material       1        10.0
         stock-b            1        10.0

另一个用^{}计算计数,然后除以^{}sum创建的新Series

^{pr2}$

解决方案之间的区别是第一次按每组值排序,第二次排序MultiIndex。在

相关问题 更多 >