这个问题可能是太复杂了:
Using pandas, find the intersecting regions between two DataFrames?
有两个熊猫数据框:
import pandas as pd
dict1 = {0:['chr1','chr1','chr1','chr1','chr2'],
1:[1, 100, 150, 900, 1], 2:[100, 200, 500, 950, 100]}
df1 = pd.DataFrame(dict1)
print(df1)
## 0 1 2
## 0 chr1 1 100
## 1 chr1 100 200
## 2 chr1 150 500
## 3 chr1 900 950
## 4 chr2 1 100
dict2 = {0:['chr1','chr1'], 1:[155, 800], 2:[200, 901]}
df2 = pd.DataFrame(dict2)
print(df2)
## 0 1 2
## 0 chr1 155 200
## 1 chr1 800 901
第0列是位置。第1列是开始位置,第2列是结束位置。
我想找到df1
与df2
的交集,即df1_intersect_df2
:
chr1 155 200
chr1 900 901
df1
在155到200处与df2
相交,并且在900到901处与df2
相交。
用pandas和numpy计算交点最快的方法是什么?最有效的内存? (我猜想多个for循环可能是内存效率最高的方法。)