在python中将正(+)和负( - )符号更改为整数

时间:2018-05-23 16:12:59

标签: python pandas

我有一个包含以下列的数据框:

A
+
+
-
+
-

如何将此列转换为整数值。这样我可以将它乘以其他数值?

因此,所有' +'将替换为1和' - '由-1。

5 个答案:

答案 0 :(得分:9)

您可以使用:

df.A = df.A.map({'+': 1, '-': -1})

答案 1 :(得分:6)

如果我理解正确,您可以使用replace

>>> df
   A
0  +
1  +
2  -
3  +
4  -

new_df = df.replace({'A':{'+':1, '-':-1}})

>>> new_df
   A
0  1
1  1
2 -1
3  1
4 -1

答案 2 :(得分:6)

使用apply:

假设列中只有+-

df['A'] = df.A.apply(lambda x: 1 if x == '+' else -1)

使用字符串连接&铸造:

df['A'] = (df.A + '1').astype(int)

使用字符串相等&铸造:

df['A'] = (df.A == '+').astype(int)*2-1

答案 3 :(得分:3)

一些可能的方法可能是使用add添加1字符串并使用int转换为astype

df['A'] = df.A.add('1').astype(int)

或使用lambda用于上述目的:

df['A'] = df.A.apply(lambda row: int(row + '1'))

答案 4 :(得分:3)

searchsorted

df.assign(A=1 - np.array(['+']).searchsorted(df.A) * 2)

   A
0  1
1  1
2 -1
3  1
4 -1

简洁

df.assign(A=df.A.eq('-').mul(2).rsub(1))

   A
0  1
1  1
2 -1
3  1
4 -1