我有一列正数和负数。如何将这一列转换为一个新的列,使正数转换为1,负数转换为-1?
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
对于特定的列 -
df['column_name'][df['column_name'] < 0] = -1
df['column_name'][df['column_name'] > 0] = 1
.loc
似乎更好,例如df.loc[df['column_name'] < 0, 'column_name'] = -1
。 - wjandreadf[df < 0] = -1
df[df > 0] = 1
df == 0
没有定义任何行为。
0
,会发生什么? - jezrael