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

使用python从pandas数据框创建项目集

如何解决使用python从pandas数据框创建项目集

我有一个数据框,其中有102377行,如下所示:

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.isnumericDataFrame.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()

代替Series.str.isnumeric

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