我有一個熊貓資料框,其中一列是一個字串。我只想要該列中日期前面的第一個單詞(也是字串形式)。問題是我不知道日期前面有多少字。
該列的字串行如下所示:
word1 word2 word3 02/08/2022 XXX XXX XXX
word1 04/09/2019 XXX XXX XXX
word1 word2 word3 word4 10/12/2021 XXX XXX XXX
word1 word2 30/11/2022 XXX XXX XXX
所以我只想:
word1 word2 word3
word1
word1 word2 word3 word4
word1 word2
“XXX”代表我事先不知道有多少個單詞。
有人可以幫我解決這個問題嗎?
uj5u.com熱心網友回復:
import re
example_string = 'word1 word2 word3 02/08/2022 XXX XXX XXX'
match = re.search(r'(\d /\d /\d )',example_string)
desired_string = example_string.split(match.group(1))[0]
output: word1 word2 word3
uj5u.com熱心網友回復:
您可以使用str.extract,這樣可以避免決議字串的其余部分,并且會在到達日期后立即停止:
df['words'] = df['col'].str.extract(r'(.*)\s \d{2}/\d{2}/\d{4}', expand=False)
輸出:
col word
0 word1 word2 word3 02/08/2022 XXX XXX XXX word1 word2 word3
1 word1 04/09/2019 XXX XXX XXX word1
2 word1 word2 word3 word4 10/12/2021 XXX XXX XXX word1 word2 word3 word4
3 word1 word2 30/11/2022 XXX XXX XXX word1 word2
uj5u.com熱心網友回復:
我們可以使用Series.str.split正則運算式模式
s = pd.Series(["word1 word2 word3 02/08/2022 XXX XXX XXX", "word1 04/09/2019 XXX XXX XXX"])
s.str.split("\d{2}/\d{2}/\d{4}").str[0]
0 word1 word2 word3
1 word1
dtype: object
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438541.html
下一篇:將timedelta轉換為秒
