San*_*nez 45 python dataframe pandas
我在Pandas中有数据帧,例如:
Col1 Col2
A 1
B 2
C 3
Run Code Online (Sandbox Code Playgroud)
现在,如果我想添加另一个名为Col3的列,并且该值基于Col2.在公式中,如果Col2> 1,则Col3为0,否则为1.因此,在上面的示例中.输出将是:
Col1 Col2 Col3
A 1 1
B 2 0
C 3 0
Run Code Online (Sandbox Code Playgroud)
有关如何实现这一点的任何想法?
Vik*_*kez 64
你只是做了相反的比较.if Col2 <= 1.这将返回一个布尔系列,False其中包含大于1的True值和另一个的值.如果你将它转换为int64dtype,True变成1并False成为0,
df['Col3'] = (df['Col2'] <= 1).astype(int)
Run Code Online (Sandbox Code Playgroud)
如果你想要一个更通用的解决方案,你可以Col3根据Col2你的值分配任何数字,例如:
df['Col3'] = df['Col2'].map(lambda x: 42 if x > 1 else 55)
Run Code Online (Sandbox Code Playgroud)
要么:
df['Col3'] = 0
condition = df['Col2'] > 1
df.loc[condition, 'Col3'] = 42
df.loc[~condition, 'Col3'] = 55
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121070 次 |
| 最近记录: |