【问题标题】:Column to Transacction ID for association rules on dataframes from Pandas Python.来自 Pandas Python 的数据帧关联规则的事务 ID 列。
【发布时间】:2016-06-29 18:39:43
【问题描述】:

我使用 Pandas 将 CSV 导入 Python,我希望能够将其中一个用作列作为事务 ID,以便我制定关联规则。

(链接:https://github.com/antonio1695/Python/blob/master/nearBPO/facturas.csv

我希望有人可以帮助我:

使用 UUID 作为事务 ID,让我拥有如下数据框:

UUID     Desc
123ex    Meat,Beer

为了让我获得如下关联规则:{Meat} => {Beer}。

此外,我们将不胜感激以一种简单的方式推荐图书馆。

感谢您的宝贵时间。

【问题讨论】:

  • 对不起,你是在df.loc[df['UUID'] == some_id', 'Desc']之后吗?或者类似df.groupby('UUID')['Desc'].apply(list)
  • 第二个完美!但是,它返回给我的类型是 pandas.core.series.Series,有没有办法将其保留为数据框?如果它可以像任何数据框一样可编辑并作为一个导入,我猜你刚刚回答了我的问题。因此,您可以将其发布在答案中,我可以为您 +1 并将我的问题标记为已回答。 :) @EdChum
  • 我也想过这样的事情:pd.pivot_table(df_du,index=["UUID"], values=["Desc"]) 但它不起作用。 @EdChum
  • 不确定你对Series的反感是什么,你可以像使用df一样使用它们,你也可以在groupby对象上调用reset_index
  • 我需要它成为数据框,以便我将其导出到 R。不过,df.reset_index() 工作得很好。你能对答案发表评论吗?

标签: python csv pandas dataframe arules


【解决方案1】:

您可以通过执行以下操作将值聚合到列表中:

df.groupby('UUID')['Desc'].apply(list)

这将为您提供您想要的,如果您希望将 UUID 作为一列返回,您可以在上面调用 reset_index

df.groupby('UUID')['Desc'].apply(list).reset_index()

对于系列,您仍然可以将其导出到与 df 相同的 csv:

df.groupby('UUID')['Desc'].apply(list).to_csv(your_path)

您可能需要在导出之前为您的索引命名,或者如果您发现使用reset_index 将索引恢复为列并调用to_csv 更容易,然后调用to_csv

【讨论】:

    猜你喜欢
    • 2020-02-26
    • 2018-12-04
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2019-02-08
    • 1970-01-01
    • 2022-07-06
    相关资源
    最近更新 更多