根据pandas DataFrame中的列有效地找到相交范围?

时间:2019-07-18 22:13:07

标签: python pandas numpy dataframe

这个问题可能是太复杂了:

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列是结束位置。

我想找到df1df2的交集,即df1_intersect_df2

chr1    155 200 
chr1    900 901 

df1在155到200处与df2相交,并且在900到901处与df2相交。

用pandas和numpy计算交点最快的方法是什么?最有效的内存? (我猜想多个for循环可能是内存效率最高的方法。)

0 个答案:

没有答案
相关问题