在 Python 中将混合数据类型转换为数值

时间:2021-07-22 10:03:43

标签: python logistic-regression

我正在尝试将下表从混合数据类型转换为数字

<头>
利益相关者 产品(CWS) 信用相关
合作伙伴关怀 Webroot BR-1278
NOC - 太平洋标准时间 RMM - 脚本查询 BR-1460

我尝试使用以下代码

'datac['Stakeholder'] = pd.to_numeric(datac['Stakeholder'], errors='coerce').astype('Int64')'

并且输出正在将列转换为空白单元格和 0。

1 个答案:

答案 0 :(得分:0)

我不确定你想做什么。

问题是您不能使用 astype 将任意字符串转换为 int,因为不清楚例如“abc”应该被转换。

转换为 01

但是您可以使用 try 来检查是否可以进行转换。如果不是:您分配了一个 0

像这样:

def convert_to_int(col):
    numbers = []
    for el in col:
        try:
            int(el) # Check if conversion to int is possible
            number = 1 # assign 1 if conversion successful 
        except:
            number = 0 # else: assign a 0
        numbers.append(number)
    return numbers

# Example data
data = {"Stakeholder":["Partner Care", "NOC - PST", "12", "0", "Other Stakeholder"]}
df = pd.DataFrame(data)

# Convered df
df["Stakeholder_ints"] = convert_to_int(df["Stakeholder"])

转换为数字类别

from sklearn.preprocessing import LabelEncoder  
data = {"Stakeholder":["Partner Care", "NOC - PST", "12", "0", "Other Stakeholder"]}
df = pd.DataFrame(data)

col = df["Stakeholder"]
le = LabelEncoder()
df["Stakeholder_cats"] = le.fit_transform(col)