看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)给定以下DataFrame,包含学生的数学、物理、化学和历史成绩:
import pandas as pd
import numpy as np
data = {
'数学': [85, 90, 78, 92, 88, np.nan, 95, 81],
'物理': [82, 88, 80, np.nan, 85, 76, 90, 79],
'化学': [78, 92, 75, 88, 84, 72, np.nan, 80],
'历史': [90, 85, 88, 92, 86, 80, 94, 82]
}
df = pd.DataFrame(data)
print(df)
输出:
数学 物理 化学 历史
0 85.0 82.0 78.0 90
1 90.0 88.0 92.0 85
2 78.0 80.0 75.0 88
3 92.0 NaN 88.0 92
4 88.0 85.0 84.0 86
5 NaN 76.0 72.0 80
6 95.0 90.0 NaN 94
7 81.0 79.0 80.0 82
请回答以下问题:
min_periods=5
参数计算相关系数矩阵(皮尔逊方法),与第1题结果有何不同?df.corr()
结果:
数学 物理 化学 历史
数学 1.000000 0.923378 0.869318 0.654654
物理 0.923378 1.000000 0.920727 0.554700
化学 0.869318 0.920727 1.000000 0.554700
历史 0.654654 0.554700 0.554700 1.000000
df.corr(method='spearman')
结果:
数学 物理 化学 历史
数学 1.000000 0.928571 0.857143 0.714286
物理 0.928571 1.000000 0.964286 0.535714
化学 0.857143 0.964286 1.000000 0.535714
历史 0.714286 0.535714 0.535714 1.000000
df.corrwith(df['数学'])
结果:
数学 1.000000
物理 0.923378
化学 0.869318
历史 0.654654
dtype: float64
min_periods=5
的差异:df.corr(min_periods=5)
结果中数学与化学、物理与历史的相关系数变为NaN,因为有效数据对不足5个。
corr()
函数默认使用皮尔逊相关系数(完)
更新时间:2025-08-18 10:23:40 标签:pandas python 相关性