假设我有一个像这样的数据框
obj
我想要这样的结果:
column1 column2
1 8
2 9
20 1
4 2
56
6
2
所以我想要第3列中的结果
答案 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.intersection
与pd.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对象的解决方案。