如何创建一个pandas函数来测试多个pandas列中是否存在两个字符串[重复]

jmo0nnb3  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(77)

此问题在此处已有答案

How do I create a new column where the values are selected based on existing columns?(13个回答)
16天前关闭
我试着写一个函数,它扫描一组列,并测试两个条件是否存在于两个不同的列行中。

pattern_one = 'Test1|Exam12'

df = pd.DataFrame({'Project Code':['32132','212132'],'Task Name':['Test 1','Test13']})

def data_filter(project_code, task_name):
    
    if (project_code.str.contains('32132').any() & 
    task_name.str.contains(pattern_one, regex=True).any()):

    output = '45%'
    return(output)
    
    elif:

    output = '0%'
    return(output)

字符串
Dataframe看起来像这样:
| 项目代码|任务名称|
| --|--|
| 32132 |Test1|
| 212132 |测试13|

bkhjykvo

bkhjykvo1#

你不需要函数:使用np.where和条件以及if-true和if-false值。

import pandas as pd
import numpy as np

df = pd.DataFrame({"Project Code": ["32132", "212132"],
                   "Task Name" : ["Test1", "Test13"]
                   })

df['out'] = np.where((df["Project Code"].str.contains('32132')) &
                     (df["Task Name"].str.contains('Test1|Exam12')), "45%", "0%")

print(df)

字符串
给出:

Project Code Task Name  out
0        32132     Test1  45%
1       212132    Test13   0%

相关问题