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

在python中将正号(+;)和负号(-)更改为整数,python,pandas,Python,Pandas,我有一个dataframe,其中包含以下列: A + + - + - 如何将此列转换为整数值。这样我就可以把它乘以其他数值了 因此,所有的“+”将被1替换,“-”将被-1替换。如果我理解正确,您可以使用: 您可以使用: df.A = df.A.map({'+': 1, '-': -1}) 使用应用程序: 假设列中只有+和-值 使用字符串连接和转换: df['A'] = (df.A + '1').astype(int) df['A'] = (df.A == '+').astype(int)*

我有一个dataframe,其中包含以下列:

A
+
+
-
+
-
如何将此列转换为整数值。这样我就可以把它乘以其他数值了


因此,所有的“+”将被1替换,“-”将被-1替换。

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

您可以使用:

df.A = df.A.map({'+': 1, '-': -1})
使用应用程序:

假设列中只有
+
-

使用字符串连接和转换:

df['A'] = (df.A + '1').astype(int)
df['A'] = (df.A == '+').astype(int)*2-1
使用字符串相等和强制转换:

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

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

df['A'] = df.A.add('1').astype(int)
或使用
lambda
达到与上述相同的目的:

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

简明的
为了清楚起见,您想将
+
替换为
1
,将
-
替换为
-1
,对吗?如果是这样,请更新您的问题,使其清晰。
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