Python Pandas 新列基于一列中的值和另一列中的空白

Python Pandas new column based on value in one column and blank in another

我正在清理数据集并想标记所有输入错误的值。例如,如果一行有类别 A 和一个空白子类别,我想标记它。

数据帧 df:

Category | Subcategory | Value
A              aa         3635
A                         45654
B              bb         3454
C              cc         3674
C                         4575

我试过这个:

df['Format_Flag'] = ' ' 
df['Format_Flag'][(df['Category'] == 'A') & (df['Subcategory'] == ' ')] = 'Y'

但它没有标记任何东西。

这是我得到的:

Category |  Subcategory |   Value  | Format Flag
  A              aa         3635
  A                         45654
  B              bb         3454
  C              cc         3674
  C                         4575

这就是我要找的:

Category |  Subcategory |   Value  | Format Flag
  A              aa         3635
  A                         45654        Y
  B              bb         3454
  C              cc         3674
  C                         4575
df.loc[(df_final['Category'] == 'A') & (df_final['Subcategory'] == ' '),'Format_Flag'] = 'Y'

df = df.fillna('')

使用np.where

df['Format_Flag'] = np.where((df['Category'] == 'A') & (df['Subcategory'] == ' '), 'Y', ' N')