在python中将正号(+;)和负号(-)更改为整数
我有一个dataframe,其中包含以下列:在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)*
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