我对计算大熊猫分类列浓度的旧函数有问题。似乎已经发生了一些变化,无法对分类系列的方法的结果进行子集分组。计算大熊猫分类的“浓度”
最小非工作例如:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A":["a","b","c","a"]})
def get_concentration(df,cat):
tmp = df[cat].astype("category")
counts = tmp.value_counts()
obs = len(tmp)
all_cons = []
for key in counts.keys():
single = np.square(np.divide(float(counts[key]),float(obs)))
all_cons.append(single)
return np.sum(all_cons)
get_concentration(df, "A")
这导致counts["a"]
一个关键的错误。我很确定这在熊猫的过去版本中起作用,并且文档似乎没有提及关于.value_counts()
方法的更改。
我补充说,也不需要''categorical'一个dtype'简化和矢量版本。 – Stefan
在其他问题中,return语句应该在for循环之外。 – Alexander