我對一項任務有疑問。我有一個如下所示的值串列:
values = ["a","b","c"]
我的 DF 如下所示:
column_1 column_2
1 sffasdef
2 bsrewsaf
3 tyhvbsrc
4 ertyui1c
5 qwertyyu
我必須檢查串列中的值之一是否存在于第 2 列中。如果存在,則在新列中它應該回傳結果和接下來的 3 個元素,因此 DF 應該如下所示:
column_1 column_2 column_3
1 sffasdef asde
2 bsrewsaf bsre
3 tyhvbsrc bsrc
4 ertyui1c c
5 qwertyyu NaN
你知道如何解決這個問題嗎?問候
uj5u.com熱心網友回復:
使用.str.extract:
df['column_3'] = df['column_2'].str.extract(f'((?:{"|".join(values)})(?:.?){{3}})')
# OR, possibly more readable
values_re = '|'.join(values)
df['column_3'] = df['column_2'].str.extract(r'((?:' values_re ')(?:.?){3})')
輸出:
>>> df
column_1 column_2 column_3
0 1 sffasdef asde
1 2 bsrewsaf bsre
2 3 tyhvbsrc bsrc
3 4 ertyui1c c
4 5 qwertyyu NaN
uj5u.com熱心網友回復:
假設您有單個字符values:
df['column_3'] = df['column_2'].str.extract(fr'([{"".join(values)}].{{,3}})')
輸出:
column_1 column_2 column_3
0 1 sffasdef asde
1 2 bsrewsaf bsre
2 3 tyhvbsrc bsrc
3 4 ertyui1c c
4 5 qwertyyu NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445131.html
