- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
假设我有一个类似于下面的数据框,我将如何获得 2 个特定列之间的相关性,然后按“ID”列分组?我相信 Pandas 'corr' 方法可以找到所有列之间的相关性。如果可能的话,我还想知道如何使用 .agg 函数(即 np.correlate)找到“groupby”相关性。
我有什么:
ID Val1 Val2 OtherData OtherData
A 5 4 x x
A 4 5 x x
A 6 6 x x
B 4 1 x x
B 8 2 x x
B 7 9 x x
C 4 8 x x
C 5 5 x x
C 2 1 x x
我需要什么:
ID Correlation_Val1_Val2
A 0.12
B 0.22
C 0.05
最佳答案
你几乎想通了所有的部分,只需将它们组合起来:
>>> df.groupby('ID')[['Val1','Val2']].corr()
Val1 Val2
ID
A Val1 1.000000 0.500000
Val2 0.500000 1.000000
B Val1 1.000000 0.385727
Val2 0.385727 1.000000
在您的情况下,为每个 ID 打印 2x2 过于冗长。我没有看到打印标量相关性而不是整个矩阵的选项,但是如果您只有两个变量,您可以执行类似这样的简单操作:
>>> df.groupby('ID')[['Val1','Val2']].corr().iloc[0::2,-1]
ID
A Val1 0.500000
B Val1 0.385727
对于 3 个或更多变量,创建简洁的输出并不简单,但您可以执行以下操作:
groups = list('Val1', 'Val2', 'Val3', 'Val4')
df2 = pd.DataFrame()
for i in range( len(groups)-1):
df2 = df2.append( df.groupby('ID')[groups].corr().stack()
.loc[:,groups[i],groups[i+1]:].reset_index() )
df2.columns = ['ID', 'v1', 'v2', 'corr']
df2.set_index(['ID','v1','v2']).sort_index()
请注意,如果我们没有 groupby
元素,则可以直接使用 numpy 中的上三角函数或下三角函数。但由于存在该元素,据我所知,以更优雅的方式生成简洁的输出并不容易。
关于python - Pandas Correlation Groupby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988627/
我有一个单词列表 L1,还有像 B1、B2..、Bn 这样的候选列表,所有列表的长度都相同。但它们没有相同的元素。列表不包含重复元素。 L1 仅与 B1、B2...Bn 中的一个最相似。我可以应用哪种
我有两个按出现次数排序的单词列表 排序是通过计算在不同时间点采样的两个文件中的每个单词生成的。 我想计算 spearman 以查看在第二个文件中找到第一个文件的顺序。 例如: 文件 a:1) 是 2)
我正在尝试绘制一个巨大的相关系数矩阵,目前,我的图如下所示: 请注意,某些单元格缺少相关系数(暂时忽略绘图缺乏对称性,除非您也恰好知道为什么会出现这种情况)。我相信这些值实际上并没有缺失,只是太小而无
假设我有 2 个字符串: AACCCGGAAATTTGGAATTTTCCCCAAATACG CGATGATCGATGAATTTTAGCGGATACGATTC 我想知道应该将第二个字符串移动多少,以便它
我需要在java中克隆excel correl()函数,我发现apache math commons库在org.apache.commons.math.stat.correlation包中有一些函数,
我正在尝试使用 Python 查看天文光谱,并且我正在使用 numpy.correlate 尝试找到径向速度偏移。我正在将我拥有的每个光谱与一个模板光谱进行比较。我遇到的问题是,无论我使用哪个光谱,
假设我销售的商品是互补品。我正在尝试找出不同销售日期的商品销售之间的相关性。 (因为我认为 item01 在 d-day 的销量可能会影响 item02~99 在 d+30 的销量) datafram
假设我有一个类似于下面的数据框,我将如何获得 2 个特定列之间的相关性,然后按“ID”列分组?我相信 Pandas 'corr' 方法可以找到所有列之间的相关性。如果可能的话,我还想知道如何使用 .a
当它重定向到我的应用程序时,在身份服务器身份验证之后,它给出 异常(exception):关联失败。 位置不明 现在因为我正在使用SPA。这条路线绝对没有。但问题是我如何定义一个。我应该在那里做什么。
我正在调整 PerformanceAnalytic 的 chart.Correlation() 函数。 chart.Corr = function (R, histogram = TRUE, meth
基于 tf-idf 矩阵计算皮尔逊相关系数以查看哪些项与其他项组合出现是否有意义?它在数学上是正确的吗? 我的输出是一个相关矩阵,每个单元格中的每个术语都有相关系数。 -------term1 ter
我在数据集中有两个 char 变量。我想计算两者之间的典型相关性。我的意思是我想从两个分类变量创建一些虚拟变量,并以这种方式计算规范相关性。在查看 proc cancorr 之后,如果不首先手动将分类
我有 2 组 x,y 坐标,我正在尝试确定它们的相关系数。一种方法是分别计算 x 值和 y 值的相关系数。然后取这些单独相关系数的算术平均值来估计 x,y 对的相关系数是否公平? 最佳答案 采用个体相
这是我的数据框。 df store_1 store_2 store_3 store_4 0 banana banana
在 Oracle SQL 中,您可以轻松地根据相关子查询中的 NOT EXISTS 条件进行更新。这对于根据另一个查询或 ID 列表进行更新很有用。 子查询机制在 Postgres 中是不同的...我
我想选择 N 个条件匹配关联表的记录。 我目前正在尝试这样完成 select v.id, name from visitors v left join trackings t on t.visitor
这个问题在这里已经有了答案: How to find the correlation between a group of values in a pandas dataframe column (
Matlab 的互相关函数 xcorr(x,y,maxlags) 有一个选项 maxlag,它返回滞后范围内的互相关序列 [ -maxlags:maxlags]。 Numpy 的 numpy.corr
是否有包含反函数的库? 作为项目的一部分,我目前正在研究测向算法。我正在使用巴特利特相关性。在 Bartlett 相关性中,我需要将已经是 3 次矩阵乘法(包括 Hermitian 转置)的分子除以作
我正在使用以下代码对 data_1 和 data_2 进行自动关联: result = numpy.correlate(data_1, data_2, mode='full') 结果也是时间序列。我还
我是一名优秀的程序员,十分优秀!