Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.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 数据帧子集系列_Python_Pandas - Fatal编程技术网

Python 数据帧子集系列

Python 数据帧子集系列,python,pandas,Python,Pandas,我有两个数据帧df1和df2。两者都有一个公共列经销商。我想为所有出现在df2中的dealer进行子集df1。我该怎么做?使用isin df1[df1['delear'].isin(df2['delear'])] 例如: In [24]: df1 = pd.DataFrame({'delear':np.arange(5)}) df2 = pd.DataFrame({'delear':[2,4]}) df1[df1['delear'].isin(df2['delear'])] Out[24]:

我有两个数据帧
df1
df2
。两者都有一个公共列
经销商
。我想为所有出现在
df2
中的
dealer
进行子集
df1
。我该怎么做?

使用isin

df1[df1['delear'].isin(df2['delear'])]
例如:

In [24]:

df1 = pd.DataFrame({'delear':np.arange(5)})
df2 = pd.DataFrame({'delear':[2,4]})
df1[df1['delear'].isin(df2['delear'])]
Out[24]:
   delear
2       2
4       4
在df2“delear”列中可能存在重复值的情况下,可以通过调用
unique
来获取唯一值:

In [26]:

df2 = pd.DataFrame({'delear':[2,4,4,4,4]})
df2['delear'].unique()
Out[26]:
array([2, 4], dtype=int64)
因此,代码变成:

df1[df1['delear'].isin(df2['delear'].unique())]

如果存在大量重复值,则少量添加
df1[df1['delear'].isin(df2['delear'].unique)]
可能是最佳选择?是的,但OP没有说明或显示任何指示是否可能存在重复值的内容,将不更新上述内容。我不必担心
unique
,因为我已经对数据进行了重复数据消除。@SaurabhKumarKarn如果我的答案回答了你的问题,那么你可以接受它,我的答案的左上角将有一个空勾号Done。。对不起,我是这个社区的新手!应该早点做的。。。