Python Pandas:基于另一列的子字符串创建新列

时间:2019-09-25 09:00:51

标签: python python-3.x pandas dataframe

编辑:我的问题被标记为该问题的重复-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']]

我并不特别喜欢列表理解,但我只是想尽我所能在网上找到任何东西。

非常感谢您在弄清楚如何进行这项工作方面所提供的帮助。预先感谢!

0 个答案:

没有答案