如何解决使用python从pandas数据框创建项目集
Queries
term timestamp
...
queryA 2018-09-27 18:26:47
queryB 2018-09-27 18:26:52
2547 2018-09-27 18:26:58
queryX 2018-09-28 14:29:49
queryP 2018-09-28 14:30:00
2157 2018-09-28 14:30:01
queryA 2018-09-29 10:14:15
queryY 2018-09-29 10:14:19
queryX 2018-09-30 12:20:40
queryP 2018-09-30 12:22:00
queryA 2018-09-30 12:22:01
queryU 2018-09-30 12:26:08
13324 2018-09-30 12:30:00
...
我想在数据框中创建术语的项目集。为此,我要进行以下操作:我从上一个术语开始,如果该术语是数字,则应创建一个新的项目集。如果之前的术语不是数字,并且时间增量小于10分钟,则该术语属于项目集。最后应该看起来像这样:
itemsets
index terms
0 13324; queryU; queryA; queryP; queryX
1 2157; queryP; queryX
2 2547; queryB; queryA
解决方法
我们可以尝试使用Series.str.isnumeric
和DataFrame.pivot_table
:
df2 = df[::-1]
new_df = df2.pivot_table(index=df2['term'].str.isnumeric().cumsum(),values='term',aggfunc='; '.join)
print(new_df)
term
term
1 13324; queryU; queryA; queryP; queryX; queryY;...
2 2157; queryP; queryX
3 2547; queryB; queryA
我们也可以使用
pd.to_numeric(df2['term'],errors='coerce').notna().cumsum()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。