python - Pandas - 过滤用户最少收听的艺术家
问题描述
我想将我的数据集过滤到听过最少数量的独特艺术家的用户。我的目标是关注具有相对较高收听率的用户,作为艺术家选择的功能。
下面是一个数据示例和我的初始代码方法:
full_df.head()
user artist plays gender age Country
0 a devendra banhart 456 m 28.0 United States
1 b boards of canada 407 m 28.0 United States
2 a cocorosie 386 m 28.0 United States
3 c aphex twin 213 m 28.0 United States
4 d animal collective 203 m 28.0 United States
代码:
eda_df = full_df.groupby('users')['artist'].filter(lambda x: len(x) >= 20)
在这种情况下,用户 a 将显示最高艺术家数。
解决方案
您可以groupby.nunique
使用pd.DataFrame.transform
.
此示例使用您的数据过滤用户 1 的最小唯一艺术家计数:
res = df[df.groupby('user')['artist'].transform('nunique') > 1]
print(res)
user artist plays gender age Country
0 a devendrabanhart 456 m 28.0 UnitedStates
2 a cocorosie 386 m 28.0 UnitedStates
推荐阅读
- apache-kafka - 旧 Kafka 是用 Scala 编写的,而新 Kafka 是用 Java 编写的吗?
- java - 如何在不编辑以前版本的情况下编辑 ArrayList?
- ean-13 - 如何将 EAN-13 条码转换为 EAN-8 条码?
- html - 鼠标悬停在左侧时如何将Bootstrap子下拉菜单修复
- c++ - C++编译器可以在编译期间计算文字的除法结果吗
- github - Cyrillic (windows - 1251) 字符在 GitHub 上未正确显示
- uwp - 当捕获设备被另一个应用程序使用时如何捕获 UWP MediaCapture 异常?
- javascript - 无法通过 JavaScript 警报显示 HTML 动态表中的文本
- postgresql - pdAdmin4 无法连接到 PostgreSQL
- reactjs - 单击提交按钮后如何关闭模型?