我对 python 和 pandas 相当陌生(从使用 SAS 作为我的主力分析平台),所以如果这已经被问到/回答了,我提前道歉。(我已经搜索了文档以及该站点以寻找答案,但还没有找到任何东西。)
我有一个包含受访者级别调查数据的数据框(称为 resp)。我想对其中一个字段(称为 nninc [年收入的缩写])执行一些基本的描述性统计。
resp["anninc"].describe()
这给了我基本的统计数据:
count 76310.000000
mean 43455.874862
std 33154.848314
min 0.000000
25% 20140.000000
50% 34980.000000
75% 56710.000000
max 152884.330000
dtype: float64
但有一个问题。鉴于样本的构建方式,需要对受访者数据进行加权调整,以便在执行分析时并非每个人都被视为“平等”。我在数据框中有另一列(称为 tufnwgrp),表示分析期间应应用于每条记录的权重。
在我之前的 SAS 生活中,大多数 proc 都可以选择使用这样的权重处理数据。例如,给出相同结果的标准 proc 单变量看起来像这样:
proc univariate data=resp;
var anninc;
output out=resp_univars mean=mean median=50pct q1=25pct q3=75pct min=min max=max n=count;
run;
使用加权数据的相同分析看起来像这样:
proc univariate data=resp;
var anninc;
weight tufnwgrp;
output out=resp_univars mean=mean median=50pct q1=25pct q3=75pct min=min max=max n=count
run;
pandas 中是否有类似的加权选项可用于 describe() 等方法?