[英]How do I apply a regex substitution in a string column of a DataFrame?
[英]How do I apply a custom regex function to column in dataframe Python
過去兩天我一直在這個網站和谷歌上搜索,但我無法弄清楚。 我有一個 4 列的 dataframe。 我覺得這是一件很容易的事情,我錯過了。 這是我的 function:
def zip_code(zip):
if re.match('^[0-9]{5}(?:-[0-9]{4})?$',zip):
#zip = 5
return zip
else:
return ''
我的客戶信息
customer_info = (['John', 'Summers', '22960', '434-305-6600'],
['Josh', 'Williams', '40143', '270-555-1544'],
['Jim', 'Roberson', '21801','555-555-5555'],
['John', 'Adams', '223211143', '4444444444']
這是我讓它發揮作用的各種嘗試
dataframe = pd.DataFrame(customer_info,columns = ['First','Last','Zip','Phone'])
#dataframe['Zip'] = dataframe['Zip'].apply(zip_code())
#dataframe['Zip'] = dataframe['Zip'].apply(zip_code(dataframe['Zip']))
#dataframe['Zip'] = dataframe['Zip'].apply(lambda x: re.match('^[0-9]{5}(?:-[0-9]{4})?$',x))
#dataframe.Zip.apply(lambda x: zip_code(x))
#dataframe['Zip'].apply(zip_code)
print(dataframe)
zipcode = zip_code('22960')
print(zipcode)
我要做的是檢查 zip 代碼列“Zip”。 如果它是與##### 或#####-#### 匹配的 zip 代碼,它將返回 zip 代碼。 否則它將返回一個空白空間。 我已經測試了 zip 代碼 function 並且它按預期工作。 但是,我不知道如何通過 zip_code function 傳遞整個 Zip 列。 每次我輸入 zip_code() 時,它都會詢問變量。 幾乎所有被注釋掉的行都是我在瀏覽此站點時發現的行,但這對我沒有幫助。 感謝您提供任何幫助!
這可以工作
import pandas as pd
customer_info = (['John', 'Summers', '22960', '434-305-6600'],
['Josh', 'Williams', '40143', '270-555-1544'],
['Jim', 'Roberson', '21801','555-555-5555'],
['John', 'Adams', '223211143', '4444444444'])
dataframe = pd.DataFrame(customer_info,columns = ['First','Last','Zip','Phone'])
dataframe["validZip"] = dataframe.Zip.str.extract(r'^([0-9]{5}(?:-[0-9]{4})?)$').fillna('')
你的版本也可以
import pandas as pd
customer_info = (['John', 'Summers', '22960', '434-305-6600'],
['Josh', 'Williams', '40143', '270-555-1544'],
['Jim', 'Roberson', '21801','555-555-5555'],
['John', 'Adams', '223211143', '4444444444'])
dataframe = pd.DataFrame(customer_info,columns = ['First','Last','Zip','Phone'])
def zip_code(zip):
if re.match('^[0-9]{5}(?:-[0-9]{4})?$',zip):
return zip
else:
return ''
dataframe.Zip = dataframe.Zip.apply(zip_code)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.