python – Pandas值的概率
发布时间:2020-12-16 21:33:21 所属栏目:Python 来源:网络整理
导读:我试图在数据帧中找到给定单词的概率,但我得到一个AttributeError:’Series’对象在我当前的设置中没有属性’columns’错误.希望你能帮我找到错误的位置. 我开始使用类似于下面的数据框,并使用以下函数对其进行转换以查找每个单词的总计数. query countfoo
我试图在数据帧中找到给定单词的概率,但我得到一个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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Python实现破解12306图片验证码的方法分析
- python – 具有MultiIndex的Pandas DataFrame:按DateTime级
- python的threading.Timer在极长的间隔(天)内有多准确?
- python中numpy的矩阵、多维数组的用法
- django之常用命令详解
- java.net.URISyntaxException: Illegal character in query
- python中的assert
- python – 如何使用openpyxl在特定的Excel单元格中填充颜色
- Python设计足球联赛赛程表程序的思路与简单实现示例
- python – 尝试使用Blogger API删除帖子会返回“未找到”错