选择其列值与另一列中的值列表匹配的行

时间:2019-06-18 20:04:30

标签: python pandas numpy data-science

我有一个名为“ permits_df”的第一个数据框,其列名为“ FSA”。

> permits_df.head()
    FSA Licence No.           Category              Operating Name
0   M9N B02-4741962 PRIVATE TRANSPORTATION COMPANY  TAXIFY
1   M3J B02-4728645 PRIVATE TRANSPORTATION COMPANY  INSTARYDE
2   M6K B02-4653451 PRIVATE TRANSPORTATION COMPANY  UBER CANADA
3   M2J B02-4691773 PRIVATE TRANSPORTATION COMPANY  FACEDRIVE
4   M8Z B02-4714142 PRIVATE TRANSPORTATION COMPANY  RIDEIN

我有第二个数据框,名为“ hood_df”,其列名为“ list_of_fsa”

    CTUID     CTNAME CMAPUID PRUID HOODNUM      HOODNAME     FCOUNT list_of_fsa
0   5350218.0   218.0   35535   35  16      Stonegate-Queensway 4   M6S,M8X,M8Y,M8Z
1   5350217.0   217.0   35535   35  16      Stonegate-Queensway 4   M6S,M8X,M8Y,M8Z
2   5350216.0   216.0   35535   35  16      Stonegate-Queensway 4   M6S,M8X,M8Y,M8Z
3   5350215.0   215.0   35535   35  16      Stonegate-Queensway 4   M6S,M8X,M8Y,M8Z
4   5350219.0   219.0   35535   35  16      Stonegate-Queensway 4   M6S,M8X,M8Y,M8Z


type(hood_df['list_of_fsa'][0])
> str

对于permits_df['FSA']中的每个FSA,我需要将其与hood_df['list_of_fsa']中的FSA所有行的值进行比较。如果FSA中发生匹配,我需要将hood_df中的记录与input_FSA匹配的permits_df中的记录合并。

对我来说,问题在于我必须在permit_df['FSA']中的input_FSA与hood_df['list_of_fsa']中FSA的 COLLECTION 之间进行比较。如果inner join内仅包含1个FSA,那么使用df.merge()进行hood_df['list_of_fsa']将会很容易。但是我不确定如何找到M8ZM6S,M8X,M8Y,M8Z之间的匹配项,然后执行df.merge()。我该怎么办?

堆栈溢出上有similar sounding questions,但它们无济于事,因为我需要使用2个不同的数据框,而不是从同一数据框中选择记录。

0 个答案:

没有答案