试图围绕pandas数据帧(没有循环)

时间:2015-03-24 21:24:01

标签: python pandas

我试图摆脱循环心态:

df = pd.DataFrame(data = np.arange(1,11), columns=['x'])

这给了我一个包含10个项目的列,1到10.我想创建一个新列y,如果x小于5,则y为0,等于{{ 1}}否则。这是我做的:

x

有更好的方法吗?

1 个答案:

答案 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