根据pandas栏第2部分中的多个条件,使用pd.apply进行分类分配

时间:2019-08-02 15:42:09

标签: python-3.x pandas

这是Categorical assignments using pd.apply based on multiple conditions on Pandas Columns的基础上

我有一个数据框,其中包含具有多个任务的项目ID号以及这些任务的完成日期。我正在尝试根据任务的完成情况或完成情况在单独的列中分配类别

我的数据框如下:

Item ID     Task 1 Comp Date  Task 2 Comp Date  Task 3 Comp Date Solution
12781463    NaT               NaT               NaT              Solution X
10547725    6/6/2019          7/30/2019         8/1/2019         Solution Y
12847251    5/31/2019         6/12/2019         NaT              Solution Y
12734403    5/31/2019         NaT               NAT              Solution Y

为了测试我应对挑战的方法,我获取了数据集的一部分,并编写了将与pd.apply()一起使用的部分函数。下面是我的.apply()函数的一些示例代码

def gating(row):
    if pd.notnull(row['Task 3 Comp Date']):
        return "Complete"
    elif (row['Solution'] == 'Solution X' & pd.isnull(row['Task 3 Comp Date'])):
        return "Pending Solution X"



df['Gating'] = df.apply(gating, axis = 1)

我希望看到ID为12781463的待定解决方案X,但收到以下错误消息。似乎.apply()不能很好地与我尝试做的事情

  

(“&不支持的操作数类型:“ str”和“ bool””,“出现在索引9”)

0 个答案:

没有答案