在 Python 中从预先计数的列表中计算统计值

问题描述 投票:0回答:2

我有一个预先计算的数据的数据框(如下所示)。我们假设这是一个“你喜欢吗?”量表,其中 4 人回答 1 - 根本不喜欢,10 人回答 2 - 不喜欢等等。

如何计算不同的统计值?我想计算平均值(在这种情况下,可以手动完成 (41+102+1253+854+25*5)/(4+10+125+85+25) =3.47) 和标准差

df=pd.DataFrame({1:4,2:10,3:125,4:85,5:25})
python statistics
2个回答
0
投票

您可以创建与对每个评分数据进行评分的人数一样多的数据框。然后你就可以使用

pandas.DataFrame.describe()
。此功能提供许多统计信息。

import pandas as pd

# Given dictionary
data = {1: 4, 2: 10, 3: 125, 4: 85, 5: 25}

# Create a list of ratings based on the counts
ratings = []
for rating, count in data.items():
    ratings.extend([rating] * count)

# Create a DataFrame
df = pd.DataFrame(ratings, columns=['Rating'])
df.describe()

0
投票

您想要做的是加权平均值和标准差。

s=pd.Series({1:4,2:10,3:125,4:85,5:25}, name='Count', )
#s.index.name = 'Grade'
average = np.average(s.index, weights=s)
std = np.sqrt(np.average((s.index-average)**2, weights=s))
© www.soinside.com 2019 - 2024. All rights reserved.