gpt4 book ai didi

python - 使用列值的热图关联?

转载 作者:行者123 更新时间:2023-12-01 00:01:47 25 4
gpt4 key购买 nike

假设我有以下对美国各州重复观察的数据,具有一定的兴趣值(value):

US_State Value
Alabama 1
Alabama 10
Alabama 9
Michigan 8
Michigan 9
Michigan 2
...

如何为所有 US_State 组合之间的值生成成对相关性?我尝试了一些不同的方法(pivot、groupby 等等),但我似乎无法理解正确的方法。

理想的输出如下:

          Alabama   Michigan    ...
Alabama 1 0.5
Michigan 0.5 1
...

最佳答案

有一种方法可以充分利用 Pandas,但这只是假设输入数据集中的每个状态具有相同数量的观测值,否则相关系数没有真正意义,结果会变得有点奇怪.

import pandas as pd

df = pd.DataFrame()
df['US_State'] = ["Alabama", "Alabama", "Alabama", "Michigan", "Michigan", "Michigan", "Oregon", "Oregon", "Oregon"]
df['Value'] = [1, 10, 9, 8, 9, 2, 6, 1, 2]

pd.DataFrame(df.groupby("US_State")['Value'].apply(lambda x: list(x))).T.apply(lambda x: pd.Series(*x), axis=0).corr()

结果是

US_State   Alabama  Michigan    Oregon
US_State
Alabama 1.000000 -0.285578 -0.996078
Michigan -0.285578 1.000000 0.199667
Oregon -0.996078 0.199667 1.000000

代码的基本作用是将每个州的数据收集到单个单元格中作为列表,转置数据帧以形成州列,然后将收集的列表数据单元格扩展为每个州的数据帧行。然后你可以调用 pandas dataframe 的标准 corr() 方法。

关于python - 使用列值的热图关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60274392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com