這是我的數據集:應用正則表達式的df,在新列中添加值
BlaBla 128 MB EE
ADTD 6 gb DTS
EEEDC 2GB RS
STA 12MB DFA
BBNB 32 mb YED
從這個數據集,我想提取MB/GB的數字和單位MB/GB。因此,我創建了下面的正則表達式:
(\d*)\s?(MB|GB)
,我已經創建,這樣的正則表達式將被應用到我的DF的代碼是:
pattern = re.compile(r'(\d*)\s?(MB|GB)')
invoice_df['mbs'] = invoice_df['Rate Plan'].apply(lambda x: pattern.search(x).group(1))
invoice_df['unit'] = invoice_df['Rate Plan'].apply(lambda x: pattern.search(x).group(2))
但是應用正則表達式來我DF時,它給以下錯誤消息:
AttributeError: 'NoneType' object has no attribute 'group'
我該怎麼做才能解決這個問題?
如果你使模式不區分大小寫? '(\ d +)\ S *(MB | GB)(我?)'?我也會在'\ d'和'*'上用'\ d'和'*'用'\ s' –
@WiktorStribiżew仍然是相同的錯誤信息 –
所以,有些條目只是不包含匹配項,而你訪問'group(1) '和'組(2)'而不檢查是否發生了匹配。 –