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

时间:2017-04-03 17:54:06

标签: python pandas if-statement conditional

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

Dataframe 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

2 个答案:

答案 0 :(得分:2)

使用np.where

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

答案 1 :(得分:1)

df.loc[(df_final['Category'] == 'A') & (df_final['Subcategory'] == ' '),'Format_Flag'] = 'Y'

df = df.fillna('')