python - 如何以另一种格式获取列表?
问题描述
我有一个数据框,我只想要包含某个值的值。我已经实现了。我现在想要的是按用户分组的列表。我得到的是列表中数据框的每个元素。我如何获得这份清单[[User1.item1, ..., user1, itemn], ..., [Usern.item1, ..., usern, itemn]]
d = {'userid': [0, 0, 0, 1, 2, 2, 3, 3, 4, 4, 4],
'itemid': [715, 845, 98, 12324, 85, 715, 2112, 85, 2112, 852, 102]}
df = pd.DataFrame(data=d)
print(df)
users = df.loc[df.itemid == 715, "userid"]
df_new = df.loc[df.userid.isin(users)]
list_new = df_new[['itemid']].values.tolist()
# What I get
[[715],[845],[98],[85],[715]]
# What I want
[[715,845,98],[85,715]]
解决方案
您可以使用groupby
操作
list_new = df_new.groupby("userid")['itemid'].apply(list).tolist()
print(list_new) # [[715, 845, 98], [85, 715]]
中间操作是
list_new = df_new.groupby("userid")['itemid'].apply(list)
print(list_new)
userid
0 [715, 845, 98]
2 [85, 715]
Name: itemid, dtype: object
推荐阅读
- typescript - Typescript中Partial的不同实现?
- linux - Linux EC2 中的 JAVA_HOME 路径
- java - Spring Boot REST API 接受所有请求并返回空白响应
- visual-studio - 在本机 Visual Studio 2019 中使用“git submodule add”
- database - 多对多关联表PK作为其他表中的FK
- javascript - 使用 Express 解析存储在 node.js 中 req.body 中的整数
- sql - 在 SQL Server 中删除列的存储过程
- amazon-web-services - AWS AppSync 增量表无法正常工作
- html - 当内容大于父级时,将 DIV 显示为块,否则显示为内联块
- javascript - 如何在 js mvc asp core 3.0 项目中获取 cookie 值?