import pandas as pd
data = [{'a': 1, 'b': 2, 'valid': True}, {'a': 3, 'b': 4, 'valid':False}]
df = pd.DataFrame(data)
a b valid
0 1 2 True
1 3 4 False
如果a
为True,我想将valid
列数据分配给新列,或者如果b
为False,则将valid
列数据分配给新列。谁能告诉我怎么做?
答案 0 :(得分:0)
您可以使用numpy.where
:
df['new'] = np.where(df['valid'], df['a'], df['b'])
print (df)
a b valid new
0 1 2 True 1
1 3 4 False 4