0
ich folgende Funktionen haben, die ich mag würde, um Kette können zusammen für die Nutzung sauberer Code haben:Chaining Funktionen für sauberere Code
def label_encoder(dataframe, column):
"""
Encodes categorical variables
"""
le = preprocessing.LabelEncoder()
le.fit(dataframe[column])
dataframe[column] = le.transform(dataframe[column])
return dataframe
def remove_na_and_inf(dataframe):
"""
Removes rows containing NaNs, inf or -inf from dataframes
"""
dataframe.replace([np.inf, -np.inf], np.nan, inplace=True).dropna(how="all", inplace=True)
return dataframe
def create_share_reate_vars(dataframe):
"""
Generate share rate to use as interaction var
"""
for interval in range(300, 3900, 300):
interval = str(interval)
dataframe[interval + '_share_rate'] = dataframe[interval + '_shares']/dataframe[interval + '_video_views']
return dataframe
def generate_logged_values(dataframe):
"""
Generate logged values for all features which can be logged
"""
columns = list(dataframe.columns)
for feature in columns:
try:
dataframe[str(feature + '_log')] = np.log(dataframe[feature])
except AttributeError:
continue
return dataframe
Ich möchte so etwas wie dies tun:
new_df = reduce(lambda x, y: y(x), reversed([label_encoder, remove_na_and_inf, create_share_reate_vars, generate_logged_values]), df)
aber da die erste Funktion zwei Argumente benötigt, wird dies nicht funktionieren. Irgendwelche Lösungen für dieses oder vielleicht ein völlig anderes Paradigma?
Wie erhalten Sie den Wert für Spalte in label_encoder? – bravosierra99
nur etwas, das ich im Voraus kenne, abhängig vom Datensatz. Ich denke, ich könnte es hart codieren? – metersk
ja, oder zumindest einen Standardwert haben ... – bravosierra99