我的数据集中有16个分类变量。我希望对其中一些变量应用0-1转换的独热编码。
独热编码示例:df_one_hot =pd.get_dummies(df,columns = [“guardian”],prefix = [“guardian”])df_one_hot.head()
0-1编码示例:df[“new_day”] =np.where(df[“day”].str.contains(“Sun”),1,0)
由于我有多个应用程序,我希望所有进行的转换都是永久的。我对第一组数据应用了独热编码。当我对第二组数据应用时,发现之前的转换并未保持永久。如何使这两种转换的操作永久生效?inplace=True,这个函数不行
import pandas as pd df = pd.read_csv("../data/student-mat.csv", sep=';')df...df_one_hot =pd.get_dummies(df,columns = ["reason"],prefix = ["reason"])df_one_hot.head()#我正在进行第一次转换。但是当我对第二组数据再次进行时,#第一次转换并未保持永久。df_one_hot =pd.get_dummies(df,columns = ["guardian"],prefix = ["guardian"])df_one_hot.head()
回答:
实际上,你并没有对第二组数据再次进行操作,而是对第一组数据进行了操作。
import pandas as pd df = pd.read_csv("../data/student-mat.csv", sep=';')# 将"df"传递给pd.get_dummies()df_one_hot = pd.get_dummies(df, columns=["reason"],prefix=["reason"])df_one_hot.head()# 再次将"df"传递给pd.get_dummies()df_one_hot = pd.get_dummies(df, columns=["guardian"], prefix=["guardian"])## 解决方案 => 将df_one_hot传递给pd.get_dummies# df_one_hot = pd.get_dummies(df_one_hot, columns=["guardian"], prefix=["guardian"])