python – Pandas值的概率
发布时间:2020-05-23 20:30:36 所属栏目:Python 来源:互联网
导读:我试图在数据帧中找到给定单词的概率,但我得到一个AttributeError:’Series’对象在我当前的设置中没有属性’columns’错误.希望你能帮我找到错误的位置. 我开始使用类似于下面的数据框,并使用以下函数对其进行转换以查找每个单词的总计数. query countfoo b
|
我试图在数据帧中找到给定单词的概率,但我得到一个AttributeError:’Series’对象在我当前的设置中没有属性’columns’错误.希望你能帮我找到错误的位置. 我开始使用类似于下面的数据框,并使用以下函数对其进行转换以查找每个单词的总计数. query count foo bar 10 super 8 foo 4 super foo bar 2 功能如下: def _words(df):
return df['query'].str.get_dummies(sep=' ').T.dot(df['count'])
导致下面的df(注意’foo’是16,因为它在整个df中出现16次): bar 12 foo 16 super 10 当尝试在df中找到给定关键字的概率时会出现问题,该关键字当前不附加列名.下面是我目前正在使用的内容,但是抛出“AttributeError:’Series’对象没有属性’columns’”错误. def _probability(df,query): return df[query] / df.groupby['count'].sum() 我希望调用_probability(df,’foo’)将返回0.421052632(16 /(12 16 10)).提前致谢! 解决方法你可以在它的末尾扔一个管道:df['query'].str.get_dummies(sep=' ').T.dot(df['count']).pipe(lambda x: x / x.sum()) bar 0.315789 foo 0.421053 super 0.263158 dtype: float64 从头开始: from numpy.core.defchararray import count
q = df['query'].values
c = df['count'].values.repeat(count(q.astype(str),' ') + 1)
f,u = pd.factorize(' '.join(q.tolist()).split())
b = np.bincount(f,c)
pd.Series(b / b.sum(),u)
foo 0.421053
bar 0.315789
super 0.263158
dtype: float64 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
