当前位置: 首页 > 面试题库 >

pandas列相关性具有统计学意义

马朝斑
2023-03-14
问题内容

给定一个熊猫数据框df,以获得其列df.1与之间的相关性的最佳方法是什么df.2

我不希望输出用来计数行NaN,而pandas内置相关性可以。但是我也希望它输出一个pvalue或标准错误,而内置错误则不会。

SciPy 似乎被NaN赶上了,尽管我相信它确实具有重要意义。

数据示例:

     1           2
0    2          NaN
1    NaN         1
2    1           2
3    -4          3
4    1.3         1
5    NaN         NaN

问题答案:

@Shashank提供的答案很好。但是,如果您想使用pure的解决方案pandas,则可能会这样:

import pandas as pd
from pandas.io.data import DataReader
from datetime import datetime
import scipy.stats  as stats


gdp = pd.DataFrame(DataReader("GDP", "fred", start=datetime(1990, 1, 1)))
vix = pd.DataFrame(DataReader("VIXCLS", "fred", start=datetime(1990, 1, 1)))

#Do it with a pandas regression to get the p value from the F-test
df = gdp.merge(vix,left_index=True, right_index=True, how='left')
vix_on_gdp = pd.ols(y=df['VIXCLS'], x=df['GDP'], intercept=True)
print(df['VIXCLS'].corr(df['GDP']), vix_on_gdp.f_stat['p-value'])

结果:

-0.0422917932738 0.851762475093

与统计功能相同的结果:

#Do it with stats functions. 
df_clean = df.dropna()
stats.pearsonr(df_clean['VIXCLS'], df_clean['GDP'])

结果:

  (-0.042291793273791969, 0.85176247509284908)

为了扩展更多的可变项,我给你一个基于丑陋循环的方法:

#Add a third field
oil = pd.DataFrame(DataReader("DCOILWTICO", "fred", start=datetime(1990, 1, 1))) 
df = df.merge(oil,left_index=True, right_index=True, how='left')

#construct two arrays, one of the correlation and the other of the p-vals
rho = df.corr()
pval = np.zeros([df.shape[1],df.shape[1]])
for i in range(df.shape[1]): # rows are the number of rows in the matrix.
    for j in range(df.shape[1]):
        JonI        = pd.ols(y=df.icol(i), x=df.icol(j), intercept=True)
        pval[i,j]  = JonI.f_stat['p-value']

结果:

             GDP    VIXCLS  DCOILWTICO
 GDP         1.000000 -0.042292    0.870251
 VIXCLS     -0.042292  1.000000   -0.004612
 DCOILWTICO  0.870251 -0.004612    1.000000

pval的结果:

 [[  0.00000000e+00   8.51762475e-01   1.11022302e-16]
  [  8.51762475e-01   0.00000000e+00   9.83747425e-01]
  [  1.11022302e-16   9.83747425e-01   0.00000000e+00]]


 类似资料:
  • 主要内容:sum()求和,mean()求均值,std()求标准差,数据汇总描述描述统计学(descriptive statistics)是一门统计学领域的学科,主要研究如何取得反映客观现象的数据,并以图表形式对所搜集的数据进行处理和显示,最终对数据的规律、特征做出综合性的描述分析。Pandas 库正是对描述统计学知识完美应用的体现,可以说如果没有“描述统计学”作为理论基奠,那么 Pandas 是否存在犹未可知。下列表格对 Pandas 常用的统计学函数做了简单的总结: 函数

  • 本文向大家介绍pandas 描述性统计,包括了pandas 描述性统计的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用该方法计算数字列的描述性统计信息(平均值,标准差,观察数,最小值,最大值和四分位数),该方法将返回描述性统计数据的熊猫数据框。.describe() 请注意,由于C不是数字列,因此将其从输出中排除。 在这种情况下,该方法通过观察次数,唯一元素数量,模式和模式频率来汇总分类数

  •   计算两个数据集的相关性是统计中的常用操作。在MLlib中提供了计算多个数据集两两相关的方法。目前支持的相关性方法有皮尔森(Pearson)相关和斯皮尔曼(Spearman)相关。   Statistics提供方法计算数据集的相关性。根据输入的类型,两个RDD[Double]或者一个RDD[Vector],输出将会是一个Double值或者相关性矩阵。下面是一个应用的例子。 import org.

  • 问题内容: 在对某些功能进行单元测试的上下文中,我试图使用python pandas建立2个DataFrames的相等性: 鉴于我正在尝试针对的完整测试(包括职位),我在做什么错? 比较包含s的Series / DataFrames相等性的最简单方法是什么? 问题答案: 您可以将assert_frame_equals与check_names = False一起使用(以免检查索引/列名称),如果它们

  • 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意事项 2.12.6. OS/2注意事项 2.12.1. Linux注意事项 2.12.1.1. Linux操作系统注意事项 2.12.1.2. Linux二进制分发版说明 2.12.1.3. Linux源码分发版说明

  • 工欲善其事,必先利其器。了解到了UI 设计相关工作岗位的任职要求后,我们可以就其中所涉及到的工具做进一步的了解,之后无论是在原型设计上,还是视觉设计上,选择适合自己并能与团队很好沟通配合的工具,做到事半功倍。 原型设计工具 Power Point(PPT) PPT 在很多人的印象中就是制作幻灯片的工具,但它在某些交互设计师的手下却是制作原型的利器。毕业后工作的第一家公司里,交互设计师用 PPT 制