向数据框添加序列,这是另外两个的交集

时间:2018-10-31 05:55:38

标签: python pandas dataframe

假设我有一个像这样的数据框

obj

我想要这样的结果:

column1   column2
   1        8
   2        9
   20       1 
   4        2
   56
   6
   2

所以我想要第3列中的结果

2 个答案:

答案 0 :(得分:0)

column = [1, 2, 20, 4, 56, 6, 2]
column = [8, 9, 1, 2]
list_1 = []

for item1 in column1:
    for item2 in column2:
        if item1 == item2:
            list_1.append(item1)
        else:
            print("NO MATCH")
z = list(set(list_1))
print(z)

答案 1 :(得分:0)

set.intersectionpd.DataFrame.loc结合使用:

L = list(set(df['column1']) & set(df['column2']))
df.loc[np.arange(len(L)), 'column3'] = L

print(df)

   column1  column2  column3
0        1      8.0      1.0
1        2      9.0      2.0
2       20      1.0      NaN
3        4      2.0      NaN
4       56      NaN      NaN
5        6      NaN      NaN
6        2      NaN      NaN

您应该意识到,这不是矢量化的,在某种程度上与Pandas / NumPy背道而驰,因此是使用常规Python对象的解决方案。