ฉันมีสองดาต้าเฟรม a และ b:
a:
+-----+---------+
| word|frequency|
+-----+---------+
| git| 5|
|stack| 10|
|match| 15|
|other| 3|
+-----+---------+
b:
+-------------+---------+
| word|frequency|
+-------------+---------+
| github| 5|
| match | 2|
|stackoverflow| 10|
| b_entry| 7|
+-------------+---------+
ฉันต้องการกรองแถวทั้งหมดออกจาก dataframe a โดยที่คอลัมน์คำเท่ากับหรือสตริงย่อยของแถวใด ๆ จาก b ดังนั้นผลลัพธ์ที่ต้องการคือ:
+-----+---------+
| word|frequency|
+-----+---------+
|other| 3|
+-----+---------+
ฉันรู้ว่ามีฟังก์ชัน a.word.contains(), a.word.like(), a.word.rlike() ฯลฯ ที่สามารถช่วยฉันทดสอบเงื่อนไขว่า a.word มีสตริงย่อยหรือไม่ ปัญหาของสิ่งเหล่านี้คือ ฉันจะลงเอยด้วยแถวของ b ที่มีค่าของ a.word แทนที่จะเป็นแถวของ a ที่มีค่าของ b.word มีฟังก์ชันใดบ้างที่จะช่วยทดสอบว่า a.word เป็นสตริงย่อยของตารางอื่นหรือไม่
ตามหลักการแล้ว โซลูชันจะสามารถดำเนินการบนสองตารางร่วมกัน แทนที่จะวนซ้ำค่าโดยตรง เช่น SQL Join