Python 将拆分字符串与列匹配

Python 将拆分字符串与列匹配,python,pandas,Python,Pandas,目前,我正在拆分汽车的名称进行销售 使用split()函数。然后我浏览一个csv文件,由pandas读取以查找匹配的字符串。 以下是我当前的脚本: title='ABARTH ABARTH 500 124 1.4升22200英里英国' 关键词=title.split() 成功匹配“make”后,如何匹配适当的“model”?将帮助您找到匹配字符串,然后需要使用在数据帧上应用筛选器。您只需要根据需要为make&model重复这两个函数。由于您提供的数据不够,我创建了一个示例数据,下面是代码 imp

目前,我正在拆分汽车的名称进行销售 使用split()函数。然后我浏览一个csv文件,由pandas读取以查找匹配的字符串。 以下是我当前的脚本:

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