Numpy where in函数匹配其他列

2024-05-03 12:27:37 发布

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

我试图用np.where函数生成一个新的df列。具体来说,我想根据行中的标识符是否在不同数据帧中的标识符列表中生成一个二进制变量。请参阅下面的函数

这似乎是一个简单的函数-有人知道为什么它不工作吗?谢谢你的帮助

df2['ETF-Heavy?']=np.where(df2['ID'] in df1['ID'], 1,0)

Tags: 数据函数iniddf列表np二进制
1条回答
网友
1楼 · 发布于 2024-05-03 12:27:37

尝试使用.isin

例如:

import pandas as pd
import numpy as np

df1 = pd.DataFrame({"ID": [1,2,3]})
df2 = pd.DataFrame({"ID": [1,21,31]})

df2['ETF-Heavy?'] = np.where(df2['ID'].isin(df1['ID']) , 1,0)
print(df2)

输出:

   ID  ETF-Heavy?
0   1           1
1  21           0
2  31           0

相关问题 更多 >