【发布时间】:2020-07-06 22:42:42
【问题描述】:
我已将其放在代码中的 df1 数据框中。
我已通过将每个字母转换为小写来修改这一行。
df1 = df1.applymap(lambda s:s.lower() if type(s) == str else s)
然后我用下划线“_”替换了每个连字符“-”或“-”和空格“”
list=[]
for x in df1['route']:
list.append(x.replace(" - ", "_").replace(" ","_").replace("-","_").replace(" ","_"))
df1['route'] = list
现在,我有不同的缩写,我不想在我的输出中。我想用完整形式替换它们,例如 _del 到 _delhi、_blr 到 _banglore、_vara 到 _varanasi、_hyd 到 _hyderabad。
还有 _del_ 到 _delhi,_blr_ 到 _banglore_,_vara_ 到 _varanasi_,_hyd_ 到 _hyderabad_。
因此,我为此编写了这些代码行,因为我已将 Route Name 列重命名为 route
for idx in range(len(df1)):
df1.loc[idx,'route'] = df1.loc[idx,'route'].replace('del_','delhi_').replace('blr_','banglore_').replace('vara_','varanasi_').replace('hyd_','hyderabad_').replace('_blr_','_banglore_').replace('_vara_','_varanasi_').replace('_hyd_','_hyderabad_').replace('_del_','_delhi_')
我现在面临的问题是,有时数据来自 delhi_to_vara 或 _chennai_blr 或luckhnow_to_vara 等。
当字符串结尾时,我不知道如何将字符串转换为完整形式,
_vara、_blr、_hyd、_del 到 _varanasi、_banglore、_hyderabad、_delhi
现在的数据是这样的 [
我为所有这些过程编写的将其转换为所需形式的代码是这样的
df1 = df1.applymap(lambda s:s.lower() if type(s) == str else s)
list=[]
for x in df1['route']:
list.append(x.replace(" - ", "_").replace(" ","_").replace("-","_").replace(" ","_"))
df1['route'] = list
for idx in range(len(df1)):
df1.loc[idx,'route'] = df1.loc[idx,'route'].replace('del_','delhi_').replace('blr_','banglore_').replace('vara_','varanasi_').replace('hyd_','hyderabad_').replace('_blr_','_banglore_').replace('_vara_','_varanasi_').replace('_hyd_','_hyderabad_').replace('_del_','_delhi_') .
if df1['route'][idx].endswith('_del'):
df1['route'][idx].replace('_del','_delhi')
if df1['route'][idx].endswith('_vara'):
df1['route'][idx].replace('_vara','_varanasi')
if df1['route'][idx].endswith('_blr'):
df1['route'][idx].replace('_blr','_banglore')
if df1['route'][idx].endswith('_hyd'):
df1['route'][idx].replace('_hyd','_hyderabad')
Route name
Del-Manali
Manali-Del
Del to Katra - 46 Sleeper
Delhi to Manali 8:30 PM
Manali to Delhi 8:00
Delhi to Manali 5:00 PM
DELHI TO KATRA 46 SEATER 8:00 PM
Lucknow to Vara
DELHI_MANALI_05:00PM
Delhi To Manali 10:30pm
MANALI TO DEL 5:00 PM
10:15 Lucknow To Vara
MANALI_DELHI_6:00PM
MANALI_DELhi_4.00PM
Delhi_Manali_6:00PM
BLR_CHENNAI_1:30PM
CHENNAI_BLR_11:00PM
BANGALORE_CHENNAI_11:05PM
CHENNAI_BANGALORE_5:30AM
Hyd_Blr
BANGALORE_HYDERABAD_ 7:45PM
CHENNAI_BANGALORE_5:45AM
DELHI TO DEHRADUN
DEHRADUN TO DELHI
Delhi to Katra UP22T8671
BANGALORE_CHENNAI_10:45PM
Delhi-Lucknow 9:00PM 30 sleeper
CHENNAI_BANGALORE_10:30PM
Lucknow_Vara_10:30PM
VARANASI_LUCKNOW_9:30PM
Delhi to Jalandhar 10:00 PM
JALANDHAR TO DELHI 11:00 AM
BANGALORE_CHENNAI_5:05AM
DELHI_AMRITSAR_23:00PM
AMRITSAR_DELHI_11:00PM
BANGALORE_COIMBATORE_11:30PM
Coimbatore_Bangalore_11:00PM
【问题讨论】:
-
你能发布你的原始数据吗?
-
我在末尾添加了一张数据应该是什么样子的示例照片,我面临的唯一问题是,如果缩写字符串在末尾并且之后什么都没有。它没有被转换成完整的形式。
-
我们应该如何复制您的照片?请提供您的数据框的文本示例,以便提供解决方案。 minimal reproducible example
-
此外,您的逻辑似乎很粗略,您在 row1 中将
Blr更改为banglore,然后在 row3 中更改为blr -
对不起先生,我的错!我现在已经添加了文本格式的数据,你能看一下吗?而blr、del、vara、hyd应该分别转换成banglore、delhi、varansi和hyderabad
标签: python python-3.x pandas