Используйте np.select
для векторизованного подхода:
import pandas as pd
import numpy as np
df = pd.DataFrame({"name":["abc","def","ghi"],
"age":["","20","22"],
"place":["Bangalore","Mumbai","Mumbai"]})
df["final column"] = np.select([df["age"]=="",(df["name"]=="def")&(df["place"]=="Mumbai")],
['age column blank','category Mumbai'],
default="Other values")
df['Mumbai category'] = np.select([df["age"]=="",(df["name"]=="def")&(df["place"]=="Mumbai")],
["NO","YES"],
default="NO")
print (df)
#
name age place final column Mumbai category
0 abc Bangalore age column blank NO
1 def 20 Mumbai category Mumbai YES
2 ghi 22 Mumbai Other values NO