Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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熊猫-基于2个数据帧的列删除行_Python_Pandas_Dataframe_Set Intersection - Fatal编程技术网

Python熊猫-基于2个数据帧的列删除行

Python熊猫-基于2个数据帧的列删除行,python,pandas,dataframe,set-intersection,Python,Pandas,Dataframe,Set Intersection,我有两个数据帧,其中一列名为frames。数据帧是从两名参与者同时录制的两个视频中提取的数据。由于跟踪失败,数据缺少一些帧(每个视频不同)。我想根据帧整数值取一个交点df['frame'] 类似的问题发布在这里: ,但公认的答案是连接,而不是交叉点 示例数据 期望输出 已删除的行不在df1['frame']和df2['frame'] >>> print(df1) frame 1 2 2 3 >>> print(df2) fra

我有两个数据帧,其中一列名为
frames
。数据帧是从两名参与者同时录制的两个视频中提取的数据。由于跟踪失败,数据缺少一些帧(每个视频不同)。我想根据帧整数值取一个交点
df['frame']

类似的问题发布在这里: ,但公认的答案是连接,而不是交叉点

示例数据 期望输出 已删除的行不在
df1['frame']
df2['frame']

>>> print(df1)
   frame
1      2
2      3

>>> print(df2)
   frame
0      2
1      3
(我可以在使用
df1.reset\u index(drop=True)
完成处理后重置索引)

尝试 我想到了首先获得两个数据帧的frames列的交集:

df1_idx = df1['frame']
df2_idx = df2['frame']
intersection_idx = df1_idx.intersection(df2_idx)
错误:

File "/*python_path*/site-packages/pandas/core/generic.py", line 3081, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'intersection'
在获得两个数据帧中的帧索引后,我考虑执行以下操作(在中提到):

系统 Python 3.6.5和pandas 0.22.0以及Anaconda一起安装。

怎么样

df1[df1.frame.isin(df2.frame)]
Out: 
   frame
1      2
2      3

df2[df2.frame.isin(df1.frame)]
Out: 
   frame
0      2
1      3
df1 = df1.drop(df[~df['frame'].isin(intersection_idx)])
df1[df1.frame.isin(df2.frame)]
Out: 
   frame
1      2
2      3

df2[df2.frame.isin(df1.frame)]
Out: 
   frame
0      2
1      3