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

如何在pandas数据框列中找到一组值之间的相关性

越俊艾
2023-03-14
问题内容

我有一个数据框df:

ID    Var1     Var2
1     1.2        4
1     2.1        6
1     3.0        7
2     1.3        8
2     2.1        9
2     3.2        13

我想找到的Pearson相关系数的值Var1,并Var2为每ID

因此结果应如下所示:

ID    Corr_Coef
1     0.98198
2     0.97073

更新:

必须确保变量的所有列均为intfloat


问题答案:
df.groupby('ID').corr()

输出:

             Var1      Var2
ID                         
1  Var1  1.000000  0.981981
   Var2  0.981981  1.000000
2  Var1  1.000000  0.970725
   Var2  0.970725  1.000000

具有OP输出格式。

df_out = df.groupby('ID').corr()
(df_out[~df_out['Var1'].eq(1)]
          .reset_index(1, drop=True)['Var1']
          .rename('Corr_Coef')
          .reset_index())

输出:

   ID  Corr_Coef
0   1   0.981981
1   2   0.970725


 类似资料:
  • 问题内容: 我想为某个列(例如column)选择一个范围。我想选择-0.5到+0.5之间的所有值。如何做到这一点? 我希望使用 但这(自然)给出了ValueError: 我试过了 但这全部输出了。 正确的输出应该是 在pandas数据框列中查找值范围的正确方法是什么? 编辑:问题 使用与 将是之间的区别 和不平等之类的 ? 问题答案: 使用有严格的不平等: 该参数确定是否包括端点(:,:)。这适用

  • 问题内容: 给定一个熊猫数据框,其中包含可能在此处和附近散布的NaN值: 问题: 如何确定哪些列包含NaN值?特别是,我可以获取包含NaN的列名称的列表吗? 问题答案: 更新: 使用熊猫0.22.0 较新的Pandas版本具有新的方法‘DataFrame.isna()’和‘DataFrame.notna()’ 作为列列表: 选择这些列(至少包含一个值): 旧答案: 尝试使用isnull(): 或作

  • 问题内容: 我有以下熊猫数据框: 产生此结果: 我如何传播,以便最终得到这个: 问题答案: 使用或: 但是,如果重复,需要或集合体,或可以改变,…: ValueError:索引包含重复的条目,无法重塑 编辑: 对于设置为和的清洁:

  • 问题内容: 我想在pandas数据框列中找到一个特定的模式,并返回相应的索引值以对数据框进行子集化。 这是带有可能模式的示例数据框: 生成数据框的代码段: 数据框: 下面,感兴趣的格局发生的日期来,这就是我想要结束了一下: 所需的输出: 如果同一模式多次出现,我希望以相同的方式对数据帧进行子集化,并计算该模式出现的次数,但是只要我将第一步弄清楚,我希望这会更直接。 感谢您的任何建议! 问题答案:

  • 问题内容: 这是一个像这样的时间序列数据,称为df: 我想获取连续“值”为1的日期范围,因此如何获得最终结果,如下所示: 问题答案: 这应该做 每当Value更改时,value_grp将增加1。在下面,您可以提取分组结果

  • 问题内容: 我的Pandas Dataframe框架看起来像这样 我希望数据位于9到10个小时之间……如果有人从事过此类工作,那将非常有帮助。 问题答案: In [7]: index = date_range(‘20131009 08:30’,‘20131010 10:05’,freq=‘5T’)