python – Pandas值的概率

python – Pandas值的概率,第1张

概述我试图在数据帧中找到给定单词的概率,但我得到一个AttributeError:’Series’对象在我当前的设置中没有属性’columns’错误.希望你能帮我找到错误的位置. 我开始使用类似于下面的数据框,并使用以下函数对其进行转换以查找每个单词的总计数. query countfoo bar 10super 8 foo 我试图在数据帧中找到给定单词的概率,但我得到一个AttributeError:’SerIEs’对象在我当前的设置中没有属性’columns’错误.希望你能帮我找到错误的位置.

我开始使用类似于下面的数据框,并使用以下函数对其进行转换以查找每个单词的总计数.

query          countfoo bar        10super          8 foo            4super foo bar  2

功能如下:

def _words(df):    return df['query'].str.get_dummIEs(sep=' ').T.dot(df['count'])

导致下面的df(注意’foo’是16,因为它在整个df中出现16次):

bar      12foo      16super    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.315789foo      0.421053super    0.263158dtype: float64

从头开始:
这更复杂但更快

from numpy.core.defchararray import countq = df['query'].valuesc = 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.421053bar      0.315789super    0.263158dtype: float64
总结

以上是内存溢出为你收集整理的python – Pandas值的概率全部内容,希望文章能够帮你解决python – Pandas值的概率所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1205016.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存