使用python从dataframe创建项目集

2024-10-02 12:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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

Tags: 数据项目框架数字timestamp术语termqueries
1条回答
网友
1楼 · 发布于 2024-10-02 12:29:09

我们可以尝试使用^{}^{}

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

相反^{}

相关问题 更多 >

    热门问题