0

所以我想要实现的基本上是根据另一列填充一列中的空白行。所以这是我的数据框的一个片段。

Person_Name     State_Abbrev       Bool
george, John    CT                   NO
george, John    PA                   NO
george, John.   NY                   NO
adam, Ross      NY                   YES
adam, Ross      CA                   NO

所以我想要做的是查看 Person_Name 列,并说如果 bool 列对每个特定的 Person_Name 都说 no 并且他们对那个人不是 Yes 然后创建一个新列并用单词 question 填写列,但是如果 Person_Name 确实至少有一行对应于该特定 person_name 的行,则不要为该人填写任何内容,然后转到我的数据框中的下一个人。

4

1 回答 1

1

您正在寻找groupby+ transform+ isin

df['New'] = df.groupby('Person_Name').Bool\
        .transform(lambda x: 'Question' if ~x.isin(['YES']).any() else '')

df

     Person_Name State_Abbrev Bool       New
0   george, John           CT   NO  Question
1   george, John           PA   NO  Question
2  george, John.           NY   NO  Question
3     adam, Ross           NY  YES          
4     adam, Ross           CA   NO     
于 2017-10-26T13:17:58.650 回答