numpy PythonPandas-尝试获取所有字段的计数和百分比-只能获取其中一个

z2acfund  于 2023-02-12  发布在  Python
关注(0)|答案(3)|浏览(102)

我想导入一些调查数据,循环遍历所有字段,并运行计数和百分比。我很难让它对问题中每个值的计数和百分比都有效。
例如,调查问题可能如下所示:
第一季度
| 识别号|回应|
| - ------|- ------|
| 1个|白色|
| 第二章|黑色|
| 三个|黑色|

预期输出

第一季度

Black 2 66.6%
White 1 33.3%

下面是我的尝试,我知道这是不正确的,但我想表明我正在努力。

import pandas as pd
import numpy as np
dataset = pd.read_excel('imp_survey_analyze.xlsx')

for column in df.columns
    print("\n" + column)
    print(df[column].value_counts())
zpjtge22

zpjtge221#

试试这个:

>>> pd.concat([df["Response"].value_counts(), df["Response"].value_counts(normalize=True)], axis=1, keys=["Count", "%"])
       Count         %
Black      2  0.666667
White      1  0.333333
qc6wkl3g

qc6wkl3g2#

尝试:

out=df['Response'].value_counts(normalize=True).mul(100).round(1).astype(str)+'%'

最后:

out=pd.concat([df['Response'].value_counts(),out],axis=1)
out.columns=['count','percentage']

out的输出:

count     percentage
Response        
Black       2       66.7%
White       1       33.3%
2ledvvac

2ledvvac3#

import pandas as pd
data = [['ID','Response'],
['1','White'],
['2','Black'],
['3','Black']]

df = pd.DataFrame(data[1:], columns=data[0])

descriptive_df = (df.groupby(by='Response').count())

descriptive_df['percentages'] = descriptive_df["ID"] / descriptive_df["ID"].sum()

print (descriptive_df)

>>> ID  percentages
>>> Response
>>> Black      2     0.666667
>>> White      1     0.333333

相关问题