python比较并向datafram添加行

2024-04-20 16:09:59 发布

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

下面是一个数据帧

ID     num
A032   [B001,B002,B003]
A052   [B002,B003,B005]
...

A032 [B002,B005,B006]这个放到数据帧中,这样看起来就像这样

ID     num
A032   [B001,B002,B003,B005,B006]
A052   [B002,B003,B005]
...

所以我要做的是检查它是否已经在数据帧中了

如果已经存在,则将其添加到num

或者

如果数据帧中不存在ID,则添加新行


Tags: 数据idnumb001b002b005b003a052
1条回答
网友
1楼 · 发布于 2024-04-20 16:09:59

您可以在pandas中通过分解和重构列表来完成,但效率很低:

import pandas as pd

df = pd.DataFrame({"ID":["A032","A052"], "num":[["B001","B002","B003"],["B002","B003","B005"]]})

df2 = pd.DataFrame({"ID":["A032"], "num": [["B002","B005","B006"]]})

print (pd.concat([df.explode("num"),df2.explode("num")],ignore_index=True)
       .drop_duplicates(["ID","num"],keep="first")
       .groupby("ID")["num"].apply(list))

#
ID
A032    [B001, B002, B003, B005, B006]
A052                [B002, B003, B005]

相关问题 更多 >