我试图摆脱循环心态:
df = pd.DataFrame(data = np.arange(1,11), columns=['x'])
这给了我一个包含10个项目的列,1到10.我想创建一个新列y
,如果x小于5,则y
为0,等于{{ 1}}否则。这是我做的:
x
有更好的方法吗?
答案 0 :(得分:2)
使用where
有条件地将值指定为true,如果为false则返回不同的值:
In [57]:
df['y'] = df['x'].where(df['x']>5, 0)
df
Out[57]:
x y
0 1 0
1 2 0
2 3 0
3 4 0
4 5 0
5 6 6
6 7 7
7 8 8
8 9 9
9 10 10