使用 Pandas 数据框计算不同特征之间的协方差矩阵

Calculating covariance matrix amongst different features using Pandas dataframe

我有一个数据集到一个 pandas 数据框中,有 9 组特征和 249 行,我想在 9 个特征之间得到一个协方差矩阵(产生一个 9 X 9 矩阵),但是,当我使用 df.cov() 函数时,我只得到一个 3 X 3 矩阵。我在这里做错了什么?

谢谢!

下面是我的代码片段

# perform data preprocessing
# only get players with MPG with less than 20 and only select the required colums
MPG_df = df.loc[df['MPG'] >= 20]
processed_df = MPG_df[["FT%", "2P%", "3P%", "PPG", "RPG", "APG", "SPG", "BPG", "TOPG"]]
processed_df

当我尝试使用下面的代码获取协方差矩阵时,我只得到一个 3 X 3 矩阵

#desired result
cov_processed_df = df = pandas.DataFrame(processed_df, columns=['FT%', '2P%', '3P%', 'PPG', 'RPG', 'APG', 'SPG', 'BPG', 'TOPG']).cov()
cov_processed_df

谢谢!

排除的列可能是非数字的(即使它们看起来是这样!)。尝试

cov_processed_df = processed_df.astype(float).cov()

要查看原始df的数据类型,您可以运行:

print(processed_df.dtypes)

如果您看到 "object" 出现在结果中,则表示这些列不是数字。 (即使它们包含至少 1 个非数字数据,它们也会被标记为非数字。)