我对python和pandas(使用SAS作为我的主力分析平台)相当新,所以如果已经被问到/已经回答过,我会事先道歉.(我搜索了文档以及这个网站搜索答案,但还没找到.)
我有一个包含受访者级别调查数据的数据框(称为resp).我想对其中一个字段(称为anninc [年收入的简称])执行一些基本的描述性统计.
resp["anninc"].describe()
Run Code Online (Sandbox Code Playgroud)
这给了我基本的统计数据:
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
Run Code Online (Sandbox Code Playgroud)
但是有一个问题.鉴于样本是如何构建的,需要对响应数据进行权重调整,以便在执行分析时不会将每个数据视为"相等".我在数据框中有另一列(称为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;
Run Code Online (Sandbox Code Playgroud)
使用加权数据的相同分析看起来像这样:
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;
Run Code Online (Sandbox Code Playgroud)
对于像describe()等方法,pandas中是否有类似的加权选项?