我有一个包含以下列的数据框:
A
+
+
-
+
-
如何将此列转换为整数值。这样我可以将它乘以其他数值?
因此,所有' +'将替换为1和' - '由-1。
答案 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