要按照选择的列对Pandas数据框进行分组和归一化,可以使用groupby
函数进行分组,并使用transform
函数对每个组进行归一化操作。
下面是一个示例代码:
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# 创建示例数据框
data = {'Group': ['A', 'A', 'B', 'B', 'C'],
'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# 选择的列
selected_column = 'Value'
# 分组并进行归一化
scaler = MinMaxScaler()
df[selected_column + '_normalized'] = df.groupby('Group')[selected_column].transform(lambda x: scaler.fit_transform(x.values.reshape(-1, 1)))
print(df)
输出结果为:
Group Value Value_normalized
0 A 10 0.0
1 A 20 1.0
2 B 30 0.0
3 B 40 1.0
4 C 50 0.0
在这个示例中,我们首先使用groupby
函数根据'Group'列进行分组。然后,对每个组的'Selected Column'列应用transform
函数,该函数对每个组进行归一化操作。我们使用sklearn.preprocessing.MinMaxScaler
进行归一化操作,并将结果存储在新的列中。最后,我们打印出数据框以查看结果。
上一篇:按照选择案例或子选择进行分组