使用 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 个非数字数据,它们也会被标记为非数字。)
我有一个数据集到一个 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 个非数字数据,它们也会被标记为非数字。)