Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何处理python上的加权示例?_Python 3.x_Pandas_Seaborn - Fatal编程技术网

Python 3.x 如何处理python上的加权示例?

Python 3.x 如何处理python上的加权示例?,python-3.x,pandas,seaborn,Python 3.x,Pandas,Seaborn,我创建了这个数据作为示例 样本中有2个男孩和1个女孩。然而,预期男女人数相等。然后,我为每一行定义“权重”,使男女人数相等 然后,我想用这个加权样本创建一个年龄直方图 我希望我能找到一个好的图书馆来处理这种情况 import pandas as pd import seaborn as sns data = [[10, 'M', 0.75], [15, 'F', 1.50], [20, 'M', 0.75]] DataFrame = pd.DataFrame(data, columns=['

我创建了这个数据作为示例

样本中有2个男孩和1个女孩。然而,预期男女人数相等。然后,我为每一行定义“权重”,使男女人数相等

然后,我想用这个加权样本创建一个年龄直方图

我希望我能找到一个好的图书馆来处理这种情况

import pandas as pd
import seaborn as sns

data = [[10, 'M', 0.75], [15, 'F', 1.50], [20, 'M', 0.75]]

DataFrame = pd.DataFrame(data, columns=['Age', 'gender', 'Weight'])

sns.distplot(DataFrame['Age'], bins=5)

我希望得到一个直方图,其中最大的一列是年龄=15岁(因为女孩的体重最大)。但是,对于年龄=[10,15,20]的值,我得到了3个相等的列。

对Matplotlib使用
weights
参数:


有了更多的数据,这看起来会更好。

谢谢,我找到了这个pyreadstat库,它确实改进了调查数据的工作。另外,现在我用这个函数处理带有加权数据的频率。def weighted_freq(var,weight):cross=pd.Series(df[[var,weight]].groupby(var).sum()[weight])/df[weight].sum()label=cross.index.map(name[var])values=100*cross.values tab=pd.DataFrame({'Labels':labeled'Frequency':values})return(tab)
import matplotlib.pyplot as plt
import pandas as pd

data = [[10, 'M', 0.75], [15, 'F', 1.50], [20, 'M', 0.75]]
df = pd.DataFrame(data, columns=['age', 'gender', 'weight'])
plt.hist(df["age"], weights=df["weight"]);