【发布时间】:2022-01-05 02:02:03
【问题描述】:
我有一个表 df1,其中包含列 Itemlist1 和 Itemlist2,其中该表中的每个单元格可以包含从 1 开始的任意数量的项目。示例:一个单元格中可以有 1 个项目 A,另一个单元格中可以有 2 个项目 B、C单元格和 3 个项目 A、D、E 在另一个中。
我有另一个表格 df2,其中包含每个项目的价格和成本。
我想创建这个最终的 df,并将 2 个新列添加到 df1、Totalprice 和 Totalcost。 Totalprice 和 Totalcost 是 df1 每一行中所有项目的总和。示例:在第 2 行中,Totalprice 是 B、A、D 项的价格之和,Totalcost 是 B、A、D 项的成本之和。
我正在考虑将所有项目合并到 df1 中的一列中,将每个项目拆分为一列,然后将其与 df2 合并。这是我目前所拥有的。
df1["items"]=df1[["Itemlist1","Itemlist2"]].agg(', '.join,axis=1)
df3=df1['items'].str.split(', ',expand=True)
由于每行中的项目数不固定,列名也不匹配,如何循环以与 df2 合并?
或者,有没有更好的方法来达到我想要的最终 df?请有任何建议。谢谢。
【问题讨论】:
标签: python pandas dataframe loops merge