给定一个问题集,包含值及其相关频率,如何sample在数据框中创建它们?
Find the mean of this dataset
Value: 1 | 2 | 3
Freq: 3 | 4 | 2
Run Code Online (Sandbox Code Playgroud)
其中代表sample, [1, 1, 1, 2, 2, 2, 2, 3, 3]。
我将其输入到Python中:
>>> import pandas as pd
>>> df = pd.DataFrame({'value':[1, 2, 3], 'freq':[4, 5, 2]})
>>> df
value freq
0 1 3
1 2 4
2 3 2
Run Code Online (Sandbox Code Playgroud)
使用这种格式不难找到解决基本统计问题的方法。例如,该数据集的平均值为(df['value'] * df['freq']).sum() / df['freq'].sum()。然而,最好使用内置函数/属性,例如.mean(). 为此,我需要将值/频率数据作为原始值数据输入到数据框中。我的最终目标是这样的:
data
0 1
1 1
2 1
3 2
4 2
5 2
6 2
7 3
8 3
Run Code Online (Sandbox Code Playgroud)
有谁知道如何输入以值/频率形式给出的数据集并创建原始数据的数据框?谢谢。
一个选项是使用np.repeat
import numpy as np
values = [1,2,3]
frequency = [3,4,2]
df = pd.DataFrame(np.repeat(values, frequency), columns=['data'])
df.mean()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |