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