[英]How can I filter a pandas dataframe of substrings based on another dataframe's column of full strings?
我有兩個 pandas 數據幀,我需要過濾 df2 並獲得一個新的 df,其中只有基於 substring 匹配的匹配行。 我可以通過完全匹配來做到這一點,但不是部分匹配。 我已經嘗試了一些事情,但無法弄清楚我錯過了什么。
df1 看起來像:
LEVEL SO# LI# BOMITEM PRTNO
0 1 00000 000000 0000 123-456789-001
1 2 00000 000000 0000 123-456019-002
2 3 00000 000000 0000 123-456029-003
3 4 00000 000000 0000 123-456039-004
4 5 00000 000000 0000 123-456049-005
df2 看起來像:
name test_table_id pk version Key_PN
0 Somename 48 48 1.0
1 Somename 48 49 1.1 123-456789-
2 Somename 48 201 1.2 000-000000-000
3 Somename 48 202 1.3 123-984560-000
4 Antoher name 193 194 1.0 123-984560-321
我正在尋找一個看起來像這樣的 dataframe:
name test_table_id pk version Key_PN
0 Somename 48 48 1.1 123-456789-
這是我使用的代碼,僅適用於完全匹配:
df 2= df2[pd.Series(list(df2['Key_PN']), index=df2.index).isin(list(df1['PRTNO']))]
使用正則表達式刪除 df.PRTNO 中的最后 2 位數字,然后使用 .isin() 檢查相似性
df2[df2.Key_PN.isin(df['PRTNO'].str.replace("\d+$",""))]
name test_table_id pk version Key_PN
1 Somename 48 49 1.1 123-456789-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.