你能幫我完成我的任務嗎?我在 Python 中有兩個 DataFrame。其中一個 (df1) 有一列包含文本字串。第二個 (df2) 有另一個文本值。
df1:
| 一些文字 |
|---|
| 你好 |
| 世界 |
| 我的名字是 |
| 缺口 |
df2:
| 要查找的文本 |
|---|
| d |
| z |
| X |
| H |
我需要檢查 df2['text to find'] 的一個值是否在 df1['some text'] 中,并在 df1 的每個值旁邊設定一些標志。最后我需要得到這樣的東西:
| 一些文字 | 旗幟 |
|---|---|
| 你好 | 1 |
| 世界 | 1 |
| 我的名字是 | 0 |
| 缺口 | 0 |
先感謝您!
uj5u.com熱心網友回復:
使用Series.str.contains與加盟值通過|對正則運算式or,最后投布林值,1,0通過轉換為整數:
df1['flag'] = df1['some text'].str.contains('|'.join(df2['text to find'])).astype(int)
print (df1)
some text flag
0 hello 1
1 world 1
2 my name is 0
3 nick 0
如有必要,按單詞邊界測驗:
print (df1)
some text
0 hello
1 world
2 my name is #<- match my
3 nick myamar #<- dont match my if substring
print (df2)
text to find
0 my
1 z
2 x
3 h
df1['flag'] = df1['some text'].str.contains('|'.join(df2['text to find'])).astype(int)
pat = '|'.join(r"\b{}\b".format(x) for x in df2['text to find'])
df1['flag1'] = df1['some text'].str.contains(pat).astype(int)
print (df1)
some text flag flag1
0 hello 1 0
1 world 0 0
2 my name is 1 1
3 nick myamar 1 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366382.html
上一篇:檢查兩個分類變數是否幾乎相同
