列表对象的差异Pandas Datafram

2024-09-27 00:22:45 发布

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

我有一个数据帧如下所述

Dt_Frame =  pd.DataFrame()

AIDList = ['ID1','ID2','ID3','ID4','ID5']
BIDList = ['ID1','ID2','ID3']

Dt_Frame = Dt_Frame.append ({'Country': 'USA', 'Schedule':  'Daily', 'Date': '2016-12-07', 'Status': 'Active','AListIDs' : AIDList ,'BListIDs' : BIDList}, ignore_index=True)

我有一个adda列Difference,它显示了AIDList和BIDList这两个列的区别,在本例中是'ID4,'ID5',我认为可以在case中使用集合,但不确定如何实现?AIDList和BIDList类型是列表。和另外,我如何再添加一列Numb_Items,它给出了列表AIDList中的对象数


Tags: 数据dataframe列表dtframecountrypdid3
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:45

要添加新列,可以Dt_Frame["newColumnName"] = value。在

关于set的区别,你的直觉是正确的。首先,可以使用applylist转换为{}

A = Dt_Frame["AListIDs"].apply(set)
B = Dt_Frame["BListIDs"].apply(set)

然后在两边加上减号,你就可以得到另一组的差值。那就是

^{pr2}$

对于对称差分,我们需要A,B位于相同的DataFrame(对于symmetric_difference方法或|运算符):

# We add two new columns
Dt_Frame["ASetIDs"] = A
Dt_Frame["BSetIDs"] = B

# We need to transpose since apply operates on columns
Dt_Frame[["ASetIDs", "BSetIDs"]].T.apply(lambda x: x.ASetIDs.symmetric_difference(x.BSetIDs))

相关问题 更多 >

    热门问题