微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跨属性拆分熊猫数据框

如何解决跨属性拆分熊猫数据框

我有一个数据框,它有很多用户,很多项目和用户项目对都有一个评级,尽管并非所有用户都对所有项目进行评级

userId    itemId    rating
1         1         4
1         5         3
1         2         5
2         5         2
2         4         4

我正在尝试测试推荐模型的性能,该模型根据用户对其他项目的评分将前 k 个项目返回给用户。拆分数据框以便我可以为某些用户子集制作评分最高的项目的测试集的最简单方法是什么?

解决方法

这将为您提供每个 UserId 评分最高的两个项目。您可以更改 javascript:(function()%7Bjavascript%3A (function main() %7B%0A %2F* I add random characters at the end of the ID so that it does not clash with any other ID's on the page *%2F%0A%0A const ID %3D%0A '--picture-in-picture-toolbar-8743fsfjkl9274g9832fkjdslfjksl7498247389'%3B %2F* Helper functions *%2F%0A const get %3D (selector%2C el %3D document) %3D> el.querySelector(selector)%3B%0A const getAll %3D (selector%2C el %3D document) %3D>%0A Array.from(el.querySelectorAll(selector))%3B%0A %2F* Remove our toolbar if it exists *%2F let _toolbar %3D get(%60%23%24%7BID%7D%60)%3B%0A if (_toolbar) %7B%0A _toolbar.parent.removeChild(_toolbar)%3B%0A %7D%0A %2F* create the toolbar *%2F const toolbar %3D document.createElement(%0A 'div'%0A )%3B %2F* Set the toolbar's ID%2C so we can remove it later *%2F%0A toolbar.id %3D ID%3B %2F* Use shadow-dom as outlined here%3A https%3A%2F%2Fdevelopers.google.com%2Fweb%2Ffundamentals%2Fweb-components%2Fshadowdom *%2F%0A %2F* Inside shadow dom we don't have to worry about conflicting styles. *%2F const shadowroot %3D toolbar.attachShadow(%0A %7B mode%3A 'open' %7D%0A )%3B%0A shadowroot.innerHTML %3D %60<style>%23container %7B z-index%3A 9999%3B border%3A 1px solid %23000%3B border-radius%3A 3px%3B padding%3A 0.7em%3B position%3A fixed%3B top%3A 0.5em%3B right%3A 0.5em%3B background-color%3A rgba(0%2C0%2C0%2C0.7)%3B font-family%3A -apple-system%2CBlinkMacSystemFont%2C"Segoe UI"%2CRoboto%2C"Helvetica Neue"%2CArial%2C"Noto Sans"%2Csans-serif%2C"Apple Color Emoji"%2C"Segoe UI Emoji"%2C"Segoe UI Symbol"%2C"Noto Color Emoji"%3B%7Dbutton %7B padding%3A 0.5em 0.7em%3B border-radius%3A 3px%3B box-shadow%3A none%3B border%3A 2px solid %23fff%3B background-color%3A transparent%3B color%3A %23fff%3B cursor%3A pointer%3B%7Dbutton%3Ahover %7B background-color%3A white%3B color%3A black%3B%7D<%2Fstyle><div id%3D"container"> <button aria-label%3D"click to alert" id%3D"alert"> Click to Alert <%2Fbutton> %0A <button onclick%3D"myFunction()">Click me<%2Fbutton>%0A <button onclick%3D"myFunction()">Click me<%2Fbutton>%0A <button onclick%3D"myFunction()">Click me<%2Fbutton>%0A %0A <button aria-label%3D"close" id%3D"close"> x <%2Fbutton><%2Fdiv> %60%3B%0A %0A %0A get('%23close'%2C shadowroot).addEventListener('click'%2C () %3D> %7B%0A const toolbar %3D get(%60%23%24%7BID%7D%60)%3B%0A if (toolbar) %7B%0A toolbar.parentNode.removeChild(toolbar)%3B%0A %7D%0A %7D)%3B%0A const alertEl %3D get('%23alert'%2C shadowroot)%3B%0A alertEl.addEventListener('click'%2C e %3D> %7B%0A alert('You clicked to alert')%3B%0A %7D)%3B%0A document.body.appendChild(toolbar)%3B%0A%7D)()%3B%7D)()%3B 中的数字,也可以查看 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.nlargest.html 作为替代

head()

输出

data='''userId    itemId    rating
1         1         4
1         5         3
1         2         5
2         5         2
2         4         4'''
df = pd.read_csv(io.StringIO(data),sep=' \s+',engine='python')
df.sort_values('rating',ascending=False).groupby('userId').head(2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?