- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑以下数据框 df
np.random.seed([3,1415])
df = pd.DataFrame(dict(
S=np.random.rand(20),
W=np.random.rand(20),
G=np.random.choice(list('ABCD'), 20)
))
print(df)
G S W
0 B 0.444939 0.278735
1 D 0.407554 0.609862
2 C 0.460148 0.085823
3 B 0.465239 0.836997
4 A 0.462691 0.739635
5 A 0.016545 0.866059
6 D 0.850445 0.691271
7 C 0.817744 0.377185
8 B 0.777962 0.225146
9 C 0.757983 0.435280
10 C 0.934829 0.700900
11 A 0.831104 0.700946
12 C 0.879891 0.796487
13 A 0.926879 0.018688
14 D 0.721535 0.700566
15 D 0.117642 0.900749
16 D 0.145906 0.764869
17 C 0.199844 0.253200
18 B 0.437564 0.548054
19 A 0.100702 0.778883
我想在 'G'
定义的每个组中使用权重 'W'
执行 'S'
列的加权 zscore
为了让我们知道加权 zscore 的定义是什么,这就是您在整个集合上计算它的方式:
(df.S - (df.S * df.W).mean()) / df.S.std()
问题
最优雅的计算方法是什么?
什么是最有效的击键计算方法?
最省时的计算方法是什么?
我计算的答案是
0 1.291729
1 0.288806
2 0.394302
3 1.414926
4 0.619677
5 -0.461462
6 1.625974
7 1.645083
8 3.312825
9 1.436054
10 2.054617
11 1.512449
12 1.862456
13 1.744537
14 1.236770
15 -0.586493
16 -0.501159
17 -0.516180
18 1.246969
19 -0.257527
dtype: float64
最佳答案
给你:
>>> df.groupby('G').apply(lambda x: (x.S - (x.S * x.W).mean()) / x.S.std())
G
A 4 0.619677
5 -0.461462
11 1.512449
13 1.744537
19 -0.257527
B 0 1.291729
3 1.414926
8 3.312825
18 1.246969
C 2 0.394302
7 1.645083
9 1.436054
10 2.054617
12 1.862456
17 -0.516180
D 1 0.288806
6 1.625974
14 1.236770
15 -0.586493
16 -0.501159
Name: S, dtype: float64
我们首先对 G
中的每个组进行拆分,然后将加权 z-score 函数应用于每个组数据帧。
关于python - 组内加权 zscore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420249/
考虑以下数据框 df np.random.seed([3,1415]) df = pd.DataFrame(dict( S=np.random.rand(20), W=
我有一个数据框,其中有一列“组”可以有 50 个不同的值,而一列“值”是数字。 一个例子可以是: pd.DataFrame({'group':['a','b','c','a','a','b','a',
我正在尝试查找各组中值的 z 分数,例如在以下数据中 df: GROUP VALUE 1 5 2 2 1 10 2 20 1 7 在第 1 组中,值是
如何根据成员的 ID 从排序集中获取成员列表而不是仅获取一个成员? 我想用实际排序集中的一组 ID 构建一个子集。 我正在为 Redis 使用 Ruby 客户端,不想一一迭代。因为我想查找的成员可能超
我正在尝试将名为 [Z Score] 的列更新到 SQL 中的表中。我编写了在 SELECT 查询中创建新列的代码,如下所示: SELECT cd.* FROM ( SELECT [Ca
我正在尝试将名为 [Z Score] 的列更新到 SQL 中的表中。我编写了在 SELECT 查询中创建新列的代码,如下所示: SELECT cd.* FROM ( SELECT [Ca
使用以下代码: import pandas as pd from sklearn.preprocessing import scale df = pd.DataFrame({"Probe":["143
我目前正在将组分配给一个特殊的 url,并将他们的 groupId 作为分数。 创建群组网址: $this->cache->redis->zadd("group_route",$groupI
这个问题在这里已经有了答案: Is Redis list or set pop method thread safe? (1 个回答) 关闭 6 年前。 如果两个 Redis 客户端同时发出 ZAD
使用 Elasticsearch/Elastic,我想合并 n 个文档集合并按 zScore(或任何标准化分数)对它们进行排序。 详细信息: 合并 2..n 个文档集合,每个文档都有一个不同范围的分数
我可以将一列插入到一个数据框中,该数据框对另一列进行 z 评分,如下所示: [1] df.insert(, column='ZofA', value=(df['A']-df['A'].mean())/
我有一个 pandas groupby 对象,它返回每种基因类型的计数,大致如下所示(为清楚起见,手动格式化列标题): counts = df.groupby(["ID", "Gene"]).size
我有一个 pandas 数据框,其中包含一列我想要 zscore 归一化的实数值: >> a array([ nan, 0.0767, 0.4383, 0.7866, 0.8091,
为什么 Python 中的 sklearn.preprocessing.StandardScaler 标准化与 Matlab 中的 zscore 不同? Python 中的 sklearn.prepr
我是一名优秀的程序员,十分优秀!