遍历if语句的行并添加到新列[Pandas / Python]

瓦卡斯汗

我有一个3列的数据框

           Hospital              2009-10  2010-11
Aberystwyth Mental Health Unit     19       19
Bro Ddyfi Community Hospital       16       10  
Bronglais General Hospital         160      148
Caebryn Mental Health Unit         37       39 
Carmarthen Mental Health Unit      38       31  

我正在尝试创建一个函数来检查单词是否在医院列中,如果这样,它将单词放入新列中,如下所示:

               Hospital              2009-10  2010-11    Hospital Type
    Aberystwyth Mental Health Unit     19       19          Mental
    Bro Ddyfi Community Hospital       16       10          Community  
    Bronglais General Hospital         160      148         General
    Caebryn Mental Health Unit         37       39          Mental
    Carmarthen Mental Health Unit      38       31          Mental

这是我尝试过的代码:

def find_type(x):
    if df['Hospital'].str.contains("Mental").any():
        return "Mental"
    if df['Hospital'].str.contains("Community").any():
        return "Community"
    else:
        return "Other"

df['Hospital Type'] = df.apply(find_type)

我得到的输出是这样的:

               Hospital              2009-10  2010-11    Hospital Type
    Aberystwyth Mental Health Unit     19       19          NaN
    Bro Ddyfi Community Hospital       16       10          NaN  
    Bronglais General Hospital         160      148         NaN
    Caebryn Mental Health Unit         37       39          NaN
    Carmarthen Mental Health Unit      38       31          NaN

我怎样才能得到预期的输出呢?

谢谢!

耶斯列尔

使用extract通过关键字相隔|fillna

pat = r"(Mental|Community)"
df['Hospital Type'] = df['Hospital'].str.extract(pat, expand=False).fillna('Other')
print (df)
                         Hospital  2009-10  2010-11 Hospital Type
0  Aberystwyth Mental Health Unit       19       19        Mental
1    Bro Ddyfi Community Hospital       16       10     Community
2      Bronglais General Hospital      160      148         Other
3      Caebryn Mental Health Unit       37       39        Mental
4   Carmarthen Mental Health Unit       38       31        Mental

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python Pandas:遍历日期并将它们作为新行添加到数据框中?

遍历数据框将行添加到列pandas python

使用 Pandas python 将 vlookup 公式添加到列中,而无需遍历行

Python Pandas-具有许多列的数据集-想要遍历每列,仅从非null的字段将行值添加到新列表

Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

Python遍历列表并将总和添加到新列表

Python pandas dataframe将元素添加到先前的行值并创建一个新列

将新列添加到python pandas中的分组对象

在Python中将节点添加到AST时,函数未添加到新行

反复添加计算的列,然后仅将新数据添加到Pandas数据框(python 3.7.1)

如何遍历多个数据框并在python中将值添加到新数据框

如果另一个是 NaN,则 Python Pandas 将值添加到新行

在python中将标题添加到矩阵的行和列

有没有一种方法可以匹配两个数据帧中的序列号,并将df2中的系列列表(行)添加到df1中的新列(Python,pandas)

Python循环遍历列表添加到字典

Python Pandas-在特定行上添加列,将特定行从一个数据框添加到另一个

从多个列中查找最接近的值,然后添加到Python中的新列

Python-使用正则表达式从Pandas DataFrame中的列(包含字符串)中提取权重并将其添加到新列中

连续读取文件并将新行添加到列表(python)

在Python中的每次迭代中将新行添加到CSV文件中

如何使用python将新行/更新数据添加到yaml文件?

如何使用Python将新的数据行添加到CSV文件?

Python:如何拆分列并将最大元素添加到新列?

在熊猫数据框上拟合 Python 曲线,然后将 coef 添加到新列

将python列表作为新列添加到csv文件

在Python中将偶数行的列的值添加到奇数行

在 Python 3.10 中使用 concat 将字典添加到 Pandas DataFrame 中的一行

Python Pandas使用地图将多个列添加到数据框

使用else if逻辑将条件列添加到Pandas Data Frame-Python