【发布时间】:2017-11-02 14:56:48
【问题描述】:
我正在使用字典键值对来替换一些字符串。
dict= {'MAA':'MADRAS', 'MAD':'MADRID'}
现在使用.replace(),它将MAA 替换为MADRAS,但MADRAS 的MAD 再次被MARDRID 替换。这给了我错误的输出,我有 8000 多个键值对,所以我的输出变得非常奇怪。有什么办法可以改正。
非常感谢任何建议。
我正在使用以下代码:
#creating dict from dataframe with 8k+ key value pairs..
iata_dict = dict(zip(df7.CityCode, df7.CityName))
for x,y in iata_dict.items():
df6["Itinerary"] = df6["Itinerary"].str.replace(x, y)
这是我的数据框行程中的一列,其中包含类似的数据-
BRISBANE-AKL-SCL-LIM/CIX-LIM/LAX/BNE
PER-HKG/HND/PVG-HKG/PER
PER/JNB/PER
PER-DXB/ALA-TSE/LHR-DXB/PER
BNE/LST/MEL-CHC/IVC/CHC/BNE
ANF/SCL-ATL/SLC-LAX-SYD/BNE
MAA-BOM/HYD/MAA
MEL/SIN/MEL
PER-SYD/SFO/MSO/SLC-LAX-BNE/PER
【问题讨论】:
-
如何替换数据。你能显示代码吗
-
不看代码我只能说你应该先替换MAD然后MAA。如果你想以两种方式替换它,你需要编写新的/更好的正则表达式,而不是使用带有字符序列的
replace()。 -
嗨,我正在使用以下代码: iata_dict = dict(zip(df7.CityCode, df7.CityName)) #creating dict from dataframe with 8k+ key value pairs.. for x,y in iata_dict .items(): df6["行程"] = df6["行程"].str.replace(x, y)
-
请包含 DataFrame 的最小示例 - 例如
df6.head(7)。以及该示例的预期结果。 --- minimal reproducible example -
@wwii这是我的数据框的一列-BNE-AKL-SCL-LIM/CIX-LIM/LAX/BNE PER-HKG/HND/PVG-HKG/PER PER/JNB/PER PER-DXB/ALA-TSE/LHR-DXB/PER BNE/LST/MEL-CHC/IVC/CHC/BNE ANF/SCL-ATL/SLC-LAX-SYD/BNE MAA-BOM/HYD/MAA MEL/SIN/MEL我将用{'MAA':'Madras','MAD':'MADRID','SYD':'SYDNEY',....... upto 8K key value pairs}替换这些。MAA应该给我MADRAS,但我得到了MADRIDRAS,MAD再次被“马德里”取代。
标签: python pandas dictionary replace