Python将文本值更改为数值输出

Python将文本值更改为数值输出,python,jupyter-notebook,Python,Jupyter Notebook,我目前有一个数据集,下面列出了一系列不同的列,表示“否”或“是”、“女性”或“男性”。我想将“否”和“雌性”更改为0,将“是”和“雄性”更改为1。我在下面附上了我要做的事情的图片。 代码没有出错,但我得到的输出如下。请帮忙 Null=dF.isnull().any() 由于您有多个要修改变量的条件,因此可以使用np.select()函数指定这些选项的选项和输出。这类似于R的dplyr包中的case\u when()函数的工作方式 df.columns中col_name的: df[col_name

我目前有一个数据集,下面列出了一系列不同的列,表示“否”或“是”、“女性”或“男性”。我想将“否”和“雌性”更改为0,将“是”和“雄性”更改为1。我在下面附上了我要做的事情的图片。 代码没有出错,但我得到的输出如下。请帮忙
Null=dF.isnull().any()


由于您有多个要修改变量的条件,因此可以使用
np.select()
函数指定这些选项的选项和输出。这类似于R的dplyr包中的
case\u when()
函数的工作方式

df.columns中col_name的
:
df[col_name]=np.选择([df[col_name]==x代表x,在['No','Female','Yes','Male']],
[0   , 0      , 1   , 1    ])

Google“一个热编码”。它是将分类值转换为数值的过程。它有一个本机函数:
get\u dummies()
。见:
dF = dF.drop(["customerID", "gender", "SeniorCitizen", "Partner", "Dependents", "tenure", "PhoneService", "MultipleLines", "InternetService", "OnlineSecurity", "OnlineBackup", "DeviceProtection", "TechSupport", "StreamingTV", "StreamingMovies", "Contract", "PaperlessBilling", "PaymentMethod", "MonthlyCharges", "TotalCharges", "Churn"], axis=1)

for column in range(len(list(dF.columns.values))):
    for index, row in dF.iterrows():
         if "No" in row[column] or "Female" in row[column]:
            dF.iloc[index, column] = 0
    
         elif "Yes" in row[column] or "Male" in row[column]:
            dF.iloc[index, column] = 1
        
dF.to_excel('Cleaned.xlsx', index=False)