【发布时间】:2021-11-07 23:33:41
【问题描述】:
我有一个这样的数据框(真正的 DF 有 94 列和 40 行):
| NAME | TIAS | EFGA | SOE | KERA | CODE | SURVIVAL |
|---|---|---|---|---|---|---|
| SOAP corp | 1.391164e+10 |
1.265005e+10 |
0.000000e+00 |
186522000.0 |
366 | 21 |
| NiANO inc | 42673.0 |
0.0 | 0.0 | 42673.0 | 366 | 3 |
| FFS jv | 9.523450e+05 |
NaN | NaN | 8.754379e+09 |
737 | 4 |
| KELL Corp | 1.045967e+07 |
9.935970e+05 |
0.000000e+00 |
NaN | 737 | 4 |
| Os inc | 7.732654e+10 |
4.046270e+07 |
1.391164e+10 |
8.754379e+09 |
737 | 4 |
我需要通过 CODE 对帧中的每个组进行关联。目标值为 SURVIVAL 列。 我试过这个:
df = df.groupby('CODE').corr()[['SURVIVAL']]
但它返回如下内容:
| CODE | SURVIVAL | |
|---|---|---|
| 366 | TIAS | NaN |
| EFGA | NaN | |
| SOE | NaN | |
| KERA | NaN | |
| SURVIVAL | NaN | |
| 737 | TIAS | NaN |
| EFGA | NaN | |
| SOE | NaN | |
| KERA | NaN | |
| SURVIVAL | NaN |
为什么所有列都是 NaN? 在进行关联之前,我尝试用平均值填充 DataFrame 中的 NaN:
df = df.fillna(df.mean())
或丢弃它们,但它不起作用。
但是,当我对所有数据框进行关联时,无需进行任何这样的修改:
df.corr()[['SURVIVAL']]
一切正常,我有相关性,而不是 NaN。
所有类型都是 float64 和 int64。 有没有办法在没有 NaN 的情况下按组获得相关性?我不知道为什么它适用于所有数据框,但不适用于组。
提前感谢您的帮助!
【问题讨论】:
标签: python pandas dataframe pandas-groupby correlation