我有一个包含3列的数据框--ID,Match,Match2,我希望创建一个名为Matchfinal的第三列。我需要一个使用numpy的函数,它查看Match列并查看是否有True或False。如果为True,则在Matchfinal列中显示True。如果为false,则转到Match2列并查看是否存在True。如果Match 2为True,则它将在Matchfinal列中写入True。如果在Match和Match2列中都看到false,它将在Matchfinal列中写入False。
Example of dataframe:
ID Match Match 2 Matchfinal
123 True False True
1234 False True True
145 False False False
158 False True True
The code i am currently using just writes whatever I have in the column Match.
df['Matchfinal']= df.Match.combine_first(df['Match2'])
答案 0 :(得分:2)
尝试:
{{1}}
答案 1 :(得分:2)
以下是针对不同数量的Match*
列的通用解决方案:
In [51]: x
Out[51]:
ID Match Match2 Match3 Match4
0 123 True False True True
1 1234 False True False True
2 145 False False False False
3 158 False True False False
In [52]: x['Matchfinal'] = x.filter(like='Match').any(1)
In [53]: x
Out[53]:
ID Match Match2 Match3 Match4 Matchfinal
0 123 True False True True True
1 1234 False True False True True
2 145 False False False False False
3 158 False True False False True
答案 2 :(得分:0)
df["MatchFinal"] = df.apply(lambda x: any(x), axis=1)
这将是我的首选方式。