Python熊猫:如何比较两个数据帧中的列



我在比较列和两个数据帧时遇到问题。

def function():
x = {'col1': ['first', 'second'], 'col2': [[1,4,5], [3,6]]}
y = {'col1': ['X', 'Y', 'Z'], 'col2': [1, 2, 3]}
df1 = pd.DataFrame(data=x)
df2 = pd.DataFrame(data=y)

如何检查df2['col2']中的值是否在df1['col2']中?我想得到一个新的数据帧,看起来像这个

col1  col2    new_col
0    X     1     first
1    Y     2     FALSE/ NaN (etc.)
2    Z     3     second

我的问题是,我不知道如何将单个元素(在实际数据中是domain_name(与domain_name列表进行比较。

您可以将df1col2explode,然后将mapmerge此列df2

df2['new_col'] = df2['col2'].map(df1.explode('col2', ignore_index=True)
.set_index('col2')['col1'])
# or
df2['new_col'] = df2[['col2']].merge(df1.explode('col2', ignore_index=True), on='col2', how='left')['col1']
print(df2)
col1  col2 new_col
0    X     1   first
1    Y     2     NaN
2    Z     3  second

相关内容

  • 没有找到相关文章

最新更新