import pandas as pd
import numpy as np
import scipy.stats as ss
import seaborn as sns
#调节字体
sns.set_context(font_scale=1.5)
#相关分析
s1 = pd.Series([“X1”,“X1”,“X2”,“X2”,“X2”,“X2”])
s2 = pd.Series([“Y1”,“Y1”,“Y1”,“Y2”,“Y2”,“Y2”])
def getEntropy(s):
#判断series,不是就转化为series
if not isinstance(s, pd.core.series.Series):
s = pd.Series(s)
#计算熵
#第一步,知道它的分布,先排序,在列出数目,转换成numpy机构,在除以它的数量,得到它的概率分布了
prt_ary = np.array(pd.groupby(s, by=s).count().values / float(len(s)))
#取得熵
return -(np.log2(prt_ary)*prt_ary).sum()
print(“Entropy:”,getEntropy(s1))
报错内容
Traceback (most recent call last):
File “D:/study/code/python/DataAnalysis/analysis/corr_analysis.py”, line 21, in
print(“Entropy:”,getEntropy(s1))
File “D:/study/code/python/DataAnalysis/analysis/corr_analysis.py”, line 18, in getEntropy
prt_ary = np.array(pd.groupby(s, by=s).count().values / float(len(s)))
AttributeError: module ‘pandas’ has no attribute 'groupby’
我更新 了pandas也没有用呢,还是报错,请教下老师