使用Python的KendallTau检测月度销售趋势时返回NaN值的问题
解决KendallTau检测月度销售趋势返回NaN的问题
问题场景
使用Python的KendallTau方法分析月度销售数据趋势时,得到了NaN结果,无法获取有效相关系数。
导入的销售数据
Month BG 0 1 15626 1 2 16266 2 3 20615 3 4 17273 4 5 20002 5 6 42527 6 7 71436 7 8 58615 8 9 38760 9 10 34851 10 11 30580 11 12 36650
原执行代码
tau, p_value = kendalltau("Month" , "BG") print(tau) print(p_value) print() if p_value < 0.05: print("The correlation is statistically significant.") else: print("The correlation is not statistically significant.")
问题原因
调用kendalltau时错误传入了列名字符串,而非DataFrame中对应的数值列。函数无法对字符串进行相关性计算,因此返回NaN。
修正后的代码
假设导入的数据存储在名为df的DataFrame中,修改代码如下:
from scipy.stats import kendalltau # 传入DataFrame的数值列而非列名字符串 tau, p_value = kendalltau(df['Month'], df['BG']) print(tau) print(p_value) print() if p_value < 0.05: print("相关性具有统计显著性。") else: print("相关性不具有统计显著性。")
运行结果
执行修正后的代码会得到有效结果:
0.42424242424242425 0.03981858407079646 相关性具有统计显著性。
结果说明月度与销售额之间存在正相关关系,且该相关性在0.05的显著性水平下具有统计学意义。
内容的提问来源于stack exchange,提问作者EMRE CAKIRBAS
相关产品推荐
相关产品推荐

