在Pandas DataFrame Python中添加新列

我在Pandas中有数据框,例如:

Col1 Col2 A 1 B 2 C 3 

现在,如果我想添加一个名为Col3的列,并且该值是基于Col2的。 在公式中,如果Col2> 1,那么Col3是0,否则将是1.所以,在上面的例子中。 输出将是:

 Col1 Col2 Col3 A 1 1 B 2 0 C 3 0 

任何想法如何实现这一目标?

你只是做一个相反的比较。 if Col2 <= 1 。 这将返回一个布尔值,其值大于1的值为False ,另一个值为True 。 如果将其转换为int64 dtype,则True变为1, False变为0

 df['Col3'] = (df['Col2'] <= 1).astype(int) 

如果您想要更通用的解决scheme,您可以根据Col2的值将任何数字分配给Col3 ,您应该这样做:

 df['Col3'] = df['Col2'].map(lambda x: 42 if x > 1 else 55) 

要么:

 df['Col3'] = 0 condition = df['Col2'] > 1 df.loc[condition, 'Col3'] = 42 df.loc[~condition, 'Col3'] = 55