【发布时间】:2020-02-18 10:47:31
【问题描述】:
我有 2 个 DataFrame,如下所示。
数据帧一(df1):这是每日平均和标准差(标准差)可用于每日情绪的文件。
date mood score count mean std abs
5/1/16 positive 1003.3015 2205 0.45501202 0.1948684 1003.3015
6/1/16 negative -956.2049 2012 -0.4752509 0.19673153 956.2049
7/1/16 positive 952.049 2095 0.45443866 0.19968715 952.049
8/1/16 neutral 10.021 20 0.50105 0.19613942 10.021
9/1/16 positive 715.7656 1528 0.46843298 0.19674478 715.7656
10/1/16 positive 802.8556 1643 0.48865222 0.20401112 802.8556
DataFrame 2 (df2):我想要获取 Z 值的文件 [df2[score]-df1[mean]]/df1[std] in
date score mood
5/1/16 0.7089 positive
6/1/16 -0.6709 negative
7/1/16 0.564 positive
7/1/16 0.4078 positive
7/1/16 -0.2009 negative
8/1/16 0.0032 neutral
所以我想基本上得到的是 DataFrame 2 中每一行的 Z 值。为此,我必须从 df1 中获取平均值和标准差,从 df2 中的每日得分中减去平均值,然后将结果值除以 df2 中的标准差(标准差)强>。但问题是 df1 每个日期只包含一个每日心情及其平均值和标准(基本上它是一个聚合文件),其中 df2 包含数百万行,并且大多数日期都有成百上千个不同心情的分数。
预期输出
date score mood Zvalue
5/1/16 0.7089 positive 1.30286892
6/1/16 -0.6709 negative -0.9944977
7/1/16 0.564 positive 0.54866495
7/1/16 0.4078 positive -0.2335587
7/1/16 -0.2009 negative 0 #because there is no negative mean or std value for this in df1
8/1/16 0.0032 neutral -2.5382454
无法对其进行编码以获得预期的输出。我真的很感激这里的一些帮助。如果您可以逐步放置一些 cmets,那将非常有帮助。非常感谢。
【问题讨论】:
-
我可以得到预期的
Zvalue,除了 0。我无法理解评论。您能否详细说明一下,以便我可以发布符合您所有要求的答案?还是您更喜欢立即回答,即使是部分回答? -
@SergeBallesta 评论说因为 df1 中没有与“消极”情绪相关的“平均和标准”,它无法计算该日期的 z 值。让我知道它是否澄清。