python - 列上的多个条件语句

标签 python pandas dataframe pandas-groupby

我想要一个列“PRI/TEN”

  1. 当 PRIMARY RESOURCE 列包含 "BERIX" 时,PRI/TEN 应 有“待定”
  2. 当 PRIMARY RESOURCE 列包含“BERIXTVX”时, PRI/TEN 应为 "TEN"
  3. 当 PRIMARY RESOURCE 列包含 “BERIXVX”PRI/TEN 应具有“PRI”

我尝试过:

data1['PRI/ TEN'] = np.where(data1['First']!='BERIXVX', 'PRI','TEN')

这是我的原创专栏

Primary Resource
BERIX_MYANMAR ONLY
BERIXTVX_BOOST IPV
BERIXTVX_BOOST IPV
BERIXVX_ENCEPUR A AD
BERIXVX_ENCEPUR AD
BERIXTVX_BOOST IPV
BERIXTVX_BEXSERO

这就是我想要的

Primary Resource    PRI/TEN
BERIX_MYANMAR ONLY  TBC
BERIXTVX_BOOST IPV  TEN
BERIXTVX_BOOST IPV  TEN
BERIXVX_ENCEPUR A AD    PRI
BERIXVX_ENCEPUR AD  PRI
BERIXTVX_BOOST IPV  TEN
BERIXTVX_BEXSERO    TEN

最佳答案

试试这个:

def categorizer(row):
    if 'BERIXTVX' in row:
        return 'TEN'
    elif 'BERIXVX' in row:
        return 'PRI'
    elif 'BERIX' in row:
        return 'TBC'

    # Return a default value
    return None


data1['PRI/TEN'] = data1['PRIMARY RESOURCE'].apply(categorizer)

这会将函数 categorizer 应用于 PRIMARY RESOURCE 列中的每一行。但它不是矢量化的,所以如果有性能问题请告诉我。

关于python - 列上的多个条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57138760/

相关文章:

python - 查找数据框中每一行的前 N ​​列

python - 如何找到在 f(x) 而不是 x 上接受错误的函数的根?

python - 在 Python 中,如何在线程回调中传递参数?

python - Pandas loc 查找已应用过 5 个或更多事物的用户

python - 从 csv 的单元格中读取包含字典的 Pandas 数据框

r - 比较数据框中的所有行并有条件地应用函数

Python - SQL语句中的特殊字符

python - 在函数之外的 golang 中设置常量,就像在 Python 中一样

python - Pandas — 匹配最后一个相同的行并计算差异

python - 已安装的 Python 模块 - Python 找不到它们