我有一個這樣的資料框(真正的 DF 有 94 列和 40 行):
| 姓名 | 天文學會 | EFGA | 國有企業 | 凱拉 | 代碼 | 生存 |
|---|---|---|---|---|---|---|
| 肥皂公司 | 1.391164e 10 |
1.265005e 10 |
0.000000e 00 |
186522000.0 |
366 | 21 |
| 鎳鋁公司 | 42673.0 |
0.0 | 0.0 | 42673.0 | 366 | 3 |
| FFS 合資企業 | 9.523450e 05 |
NaN | NaN | 8.754379e 09 |
737 | 4 |
| 凱爾公司 | 1.045967e 07 |
9.935970e 05 |
0.000000e 00 |
NaN | 737 | 4 |
| 作業系統公司 | 7.732654e 10 |
4.046270e 07 |
1.391164e 10 |
8.754379e 09 |
737 | 4 |
我需要通過 CODE 為幀中的每個組進行關聯。目標值是 SURVIVAL 列。我試過這個:
df = df.groupby('CODE').corr()[['SURVIVAL']]
但它回傳如下內容:
| 代碼 | 生存 | |
|---|---|---|
| 366 | 天文學會 | NaN |
| EFGA | NaN | |
| 國有企業 | NaN | |
| 凱拉 | NaN | |
| 生存 | NaN | |
| 737 | 天文學會 | NaN |
| EFGA | NaN | |
| 國有企業 | NaN | |
| 凱拉 | NaN | |
| 生存 | NaN |
為什么所有列中都是 NaN?在進行相關之前,我嘗試用平均值填充 DataFrame 中的 NaN:
df = df.fillna(df.mean())
或洗掉它們但它不起作用。
但是當我對所有資料幀進行相關時,沒有像這樣的任何修改:
df.corr()[['SURVIVAL']]
一切正常,我有相關性,而不是 NaN。
所有型別都是 float64 和 int64。有沒有辦法在沒有 NaN 的情況下按組獲得相關性?我不知道為什么它適用于所有資料框但不適用于組。
預先感謝您的幫助!
uj5u.com熱心網友回復:
你可以這樣做
df = df.groupby('CODE')[['SURVIVAL']].corr()
uj5u.com熱心網友回復:
嘗試這個:
survival_corr = lambda x: x.corrwith(x['SURVIVAL'])
by_code = df.groupby('CODE')
by_code.apply(survival_corr)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353859.html
標籤:Python 熊猫 数据框 pandas-groupby 相关性
