Python 将拆分字符串与列匹配
目前,我正在拆分汽车的名称进行销售 使用split()函数。然后我浏览一个csv文件,由pandas读取以查找匹配的字符串。 以下是我当前的脚本:Python 将拆分字符串与列匹配,python,pandas,Python,Pandas,目前,我正在拆分汽车的名称进行销售 使用split()函数。然后我浏览一个csv文件,由pandas读取以查找匹配的字符串。 以下是我当前的脚本: title='ABARTH ABARTH 500 124 1.4升22200英里英国' 关键词=title.split() 成功匹配“make”后,如何匹配适当的“model”?将帮助您找到匹配字符串,然后需要使用在数据帧上应用筛选器。您只需要根据需要为make&model重复这两个函数。由于您提供的数据不够,我创建了一个示例数据,下面是代码 imp
title='ABARTH ABARTH 500 124 1.4升22200英里英国'
关键词=title.split()
成功匹配“make”后,如何匹配适当的“model”?将帮助您找到匹配字符串,然后需要使用在数据帧上应用筛选器。您只需要根据需要为make&model重复这两个函数。由于您提供的数据不够,我创建了一个示例数据,下面是代码
import pandas as pd
import numpy as np
import re
from io import StringIO
words = ['amc', 'buick','volkswagen']
Models = "|".join(map(re.escape, words))
words = ['European','American']
Origins = "|".join(map(re.escape, words))
TESTDATA=StringIO("""
Model,MPG,Cylinders,Engine Disp,Horsepower,Weight,Accelerate,Year,Origin
amc ambassador dpl,15.0,8,390,190,3850,8.5,70,American
amc gremlin,21.0,6,199,90,2648,15.0,70,American
amc hornet,18.0,6,199,97,2774,15.5,70,American
amc rebel sst,16.0,8,304,150,3433,12.0,70,American
buick estate wagon (sw),14.0,8,455,225,3086,10.0,70,American
buick skylark 320,15.0,8,350,165,3693,11.5,70,American
chevrolet chevelle malibu,18.0,8,307,130,3504,12.0,70,American
chevrolet impala,14.0,8,454,220,4354,9.0,70,American
volkswagen 1131 deluxe sedan,26.0,4,97,46,1835,20.5,70,European
fiat 124b,30.0,4,88,76,2065,14.5,71,European
opel 1900,28.0,4,116,90,2123,14.0,71,European
peugeot 304,30.0,4,79,70,2074,19.5,71,European
volkswagen model 111,27.0,4,97,60,1834,19.0,71,European """)
df = pd.read_csv(TESTDATA, sep=",")
df=df.loc[df.Model.str.contains(Models)]
df=df.loc[df.Origin.str.contains(Origins)]
print (df)
输出
Model MPG Cylinders Engine Disp Horsepower Weight Accelerate Year Origin
0 amc ambassador dpl 15.0 8 390 190 3850 8.5 70 American
1 amc gremlin 21.0 6 199 90 2648 15.0 70 American
2 amc hornet 18.0 6 199 97 2774 15.5 70 American
3 amc rebel sst 16.0 8 304 150 3433 12.0 70 American
4 buick estate wagon (sw) 14.0 8 455 225 3086 10.0 70 American
5 buick skylark 320 15.0 8 350 165 3693 11.5 70 American
8 volkswagen 1131 deluxe sedan 26.0 4 97 46 1835 20.5 70 European
12 volkswagen model 111 27.0 4 97 60 1834 19.0 71 European
什么不起作用?
Model MPG Cylinders Engine Disp Horsepower Weight Accelerate Year Origin
0 amc ambassador dpl 15.0 8 390 190 3850 8.5 70 American
1 amc gremlin 21.0 6 199 90 2648 15.0 70 American
2 amc hornet 18.0 6 199 97 2774 15.5 70 American
3 amc rebel sst 16.0 8 304 150 3433 12.0 70 American
4 buick estate wagon (sw) 14.0 8 455 225 3086 10.0 70 American
5 buick skylark 320 15.0 8 350 165 3693 11.5 70 American
8 volkswagen 1131 deluxe sedan 26.0 4 97 46 1835 20.5 70 European
12 volkswagen model 111 27.0 4 97 60 1834 19.0 71 European