编辑:我的问题被标记为该问题的重复-Pandas conditional creation of a series/dataframe column。我在谷歌搜索时发现了这个问题,但是我的问题有所不同,因为我需要在列中进行子字符串匹配。
我有一个熊猫数据框,如下所示:
Hotel_Long_Nm Which_Date Rate_Typ_Cd Rez_Avg_Rate_Amt Nights_Qty
ABC 23 Sep 2019 WEBEXL-PSMR 19294.0377 2
ABC 23 Sep 2019 WEB-SPL 19294.0377 1
XYZ 23 Sep 2019 WEB-SPLE 52000 1
XYZ 23 Sep 2019 WEB-PEVC6 63750 3
XYZ 23 Sep 2019 WEB-PPE 54500 1
我想基于“ Rate_Typ_Cd”列上的子字符串匹配来定义一个名为“标签”的新列。在伪代码中,它可能看起来像这样:
if df['Rate_Typ_Cd'] == df['Rate_Typ_Cd'].str.contains('EXL'):
return 'Members Rate'
elif df['Rate_Typ_Cd'] == df['Rate_Typ_Cd'].str.contains('SPL'):
return 'MMT Rates Pickup'
else:
return 'Other'
根据我在网上找到的信息,这就是我要尝试的工作:
df['Label'] = ['Members Rate' if x == df['Rate_Typ_Cd'].str.contains('EXL') else 'Other' for x in df['Rate_Typ_Cd']]
我并不特别喜欢列表理解,但我只是想尽我所能在网上找到任何东西。
非常感谢您在弄清楚如何进行这项工作方面所提供的帮助。预先感谢!