【发布时间】:2020-07-21 08:47:36
【问题描述】:
我是 python 新手,正在尝试使用 pandas 解决问题。
我有两个 .csv 文件已作为 pandas 数据框导入。
其中一个文件是包含 ID 号、开始和结束坐标行的文件:
ID Start End
1 45 99
3 27 29
6 13 23
19 11 44
我的第二个文件有一个代码列,以及开始和结束坐标:
Code Start End
ss13d 67 100
dfv45 55 100
aal33 101 222
mm0ww 24 28
我想找到这两个文件之间没有特定顺序重叠的开始和结束坐标,因此结果看起来像这样:
ID Start End Code Start End
1 45 99 ss13d 67 100
1 45 99 dfv45 55 100
3 27 29 mm0ww 24 28
我尝试过使用 pandas.merge(),但据我了解,列表需要有共同的列。在这种情况下,它是我的起始列,但我无法合并这些列,因为它们是被比较的列。
现在我终于弄清楚了如何定位重叠背后的逻辑:
df = pd.read_csv (r'file1.csv')
df2 = pd.read_csv ('file2.csv')
c= (df['Start'] <= df2['Start']) & (df['End'] >= df2['Start']) | (df['Start'] <= df2['End']) & (df['End'] >= df2['End'])
但是我没有任何运气可以工作。
有人能指出我正确的方向吗?在这种情况下,我认为 concat 和 merge 都不适合我。
【问题讨论】: