在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