Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy where-in函数与其他列匹配_Python_Numpy - Fatal编程技术网

Python Numpy where-in函数与其他列匹配

Python Numpy where-in函数与其他列匹配,python,numpy,Python,Numpy,我正在尝试使用np.where函数生成一个新的df列。具体来说,我想根据行中的标识符是否在不同数据帧中的标识符列表中生成一个二进制变量。请参阅下面的函数 这似乎是一个简单的函数——有人知道它为什么不工作吗?谢谢你的帮助 df2['ETF-Heavy?']=np.where(df2['ID'] in df1['ID'], 1,0) 尝试使用.isin Ex: import pandas as pd import numpy as np df1 = pd.DataFrame({"ID": [1,

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

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

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

尝试使用
.isin

Ex:

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
输出:

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

尝试使用
.isin

Ex:

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
输出:

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

非常感谢非常感谢