Python 使用循环将最小-最大标量应用于多个数据集
我有n个数据帧。我想对它们中的每一个应用最小-最大标量Python 使用循环将最小-最大标量应用于多个数据集,python,pandas,Python,Pandas,我有n个数据帧。我想对它们中的每一个应用最小-最大标量 from sklearn import preprocessing x = df1.values #returns a numpy array min_max_scaler = preprocessing.MinMaxScaler() x_scaled = min_max_scaler.fit_transform(x) #df11= pd.DataFrame(x_scaled) x_scaled1 = pd.DataFrame(x_sca
from sklearn import preprocessing
x = df1.values #returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
#df11= pd.DataFrame(x_scaled)
x_scaled1 = pd.DataFrame(x_scaled, columns = df1.columns)
一个df。我试过几种方法。一切都失败了。请列出您为解决问题而尝试的方法。 但是,您可以将数据帧对象存储在列表中。然后,您可以在循环列表时缩放每个数据帧。我正在为两个数据帧做这项工作,但这同样适用于其中的n个数据帧
df1 = {'col1' : np.random.randint(1,26,10) , 'col2' : np.random.randint(1,26,10)}
df2 = {'col1' : np.random.randint(1,26,10) , 'col2' : np.random.randint(1,26,10)}
df1 = pd.DataFrame(df1)
df2 = pd.DataFrame(df2)
from sklearn import preprocessing
df_list = [df1,df2]
def loop_scaler(df_list):
scaled_df_list = []
for df in df_list:
df_array = df.values
min_max_scaler = preprocessing.MinMaxScaler()
df_scaled = min_max_scaler.fit_transform(df_array)
df_scaled = pd.DataFrame(df_scaled, columns = df.columns)
scaled_df_list.append(df_scaled)
return scaled_df_list
您可以打印并查看缩放输出:
scaled_df_list = loop_scaler(df_list)
for scaled_df in scaled_df_list:
print(scaled_df.head(5))
或
这可能有助于解决你的问题
scaled_df1, scaled_df2 = loop_scaler(df_list)
print(scaled_df1.show())
print(scaled_df2.show())
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
new_data = pd.DataFrame(data)
scaler = MinMaxScaler()
transformed_data = pd.DataFrame(scaler.fit_transform(new_data))