Как я могу сделать одно горячее преобразование постоянным - PullRequest
1 голос
/ 15 апреля 2020

В моем наборе данных есть 16 категориальных переменных. Я хотел бы применить преобразование 0-1 к некоторым из них одним горячим.

один горячий код: df_one_hot = pd.get_dummies (df, столбцы = ["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()
#I am doing the first conversion. But when I do it again for the second data, 
#the first conversion is not permanent.
df_one_hot =pd.get_dummies(df,columns = ["guardian"],prefix = ["guardian"])
df_one_hot.head()

1 Ответ

1 голос
/ 15 апреля 2020

На самом деле, вы делали это не для вторых данных, а для первых данных.

import pandas as pd 
df = pd.read_csv("../data/student-mat.csv", sep=';')

# pass "df" to pd.get_dummies()
df_one_hot = pd.get_dummies(df, columns=["reason"],prefix=["reason"])
df_one_hot.head()

# passed again "df" to pd.get_dummies()
df_one_hot = pd.get_dummies(df, columns=["guardian"], prefix=["guardian"])

## solution => pass the df_one_hot to pd.get_dummies
# df_one_hot = pd.get_dummies(df_one_hot, columns=["guardian"], prefix=["guardian"])
...