Pandas:使用函数将字符串转换为浮点数

时间:2017-06-13 14:50:28

标签: python sql pandas

我正在运行一个SQL查询,其中结果有一个名为“type”的列,其中包含“A”或“B”作为其值。我想将'A'转换为0并将'B'转换为1.据我所知,数据帧不允许使用字符串,所以我不确定如何解决这个问题。

我是否需要先使用SQL进行转换,然后使用Pandas将结果读入数据帧?

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您想要replace值,可以执行以下操作:

df['type'] = df['type'].replace("A",0).replace("B",1)

但是Pandas DataFrame应该允许使用字符串

答案 1 :(得分:2)

我不确定我是否完全理解大熊猫不允许使用字符串的含义,但是将值转换为0和1的快速方法如下:

df = pd.DataFrame(['A', 'B', 'A'], columns=['x'])
df['x_int'] = (df['x'] == 'B').astype(int)
df

    x   x_int
0   A   0
1   B   1
2   A   0

在这里,您首先将系列转换为布尔值,然后转换为整数

答案 2 :(得分:2)

Pandas DataFrames允许使用字符串,但大多数预测/回归/分类方法都不允许。

有很多方法可以将字符串转换为数值:

df['type'] = df['type'].map({'A':0, 'B':1})

IMO最灵活的是:

df['type'] = pd.factorize(df['type'])[0]

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['type'] = le.fit_tramsform(df[['type']])