【发布时间】:2018-03-02 14:31:42
【问题描述】:
我有一列正数和负数。如何将此列转换为新列,实现正数转1,负数转-1?
【问题讨论】:
-
如果
0会发生什么? -
np.sign() 将起作用。
我有一列正数和负数。如何将此列转换为新列,实现正数转1,负数转-1?
【问题讨论】:
0 会发生什么?
你需要numpy.sign
df['new'] = np.sign(df['col'])
示例:
df = pd.DataFrame({ 'col':[-1,3,-5,7,1,0]})
df['new'] = np.sign(df['col'])
print (df)
col new
0 -1 -1
1 3 1
2 -5 -1
3 7 1
4 1 1
5 0 0
【讨论】:
df[df < 0] = -1
df[df > 0] = 1
//no behaviour defined for df = 0
【讨论】:
执行这项任务真的很容易 -
对于整个数据框 -
df[df < 0] = -1
df[df > 0] = 1
对于特定的列 -
df['column_name'][df['column_name'] < 0] = -1
df['column_name'][df['column_name'] > 0] = 1
【讨论】: