import pandas as pd
import numpy as np
data = pd.read_csv('zhenjiang_power.csv') # 读取负荷
data.loc['record_date']=pd.to_datetime(data['record_date'])#将record_date转换为时间格式
print('data\n',data)
# 实现按照用户ID分组,然后对其中一列映射到0-1区间
def ratings_norm(df):
"""
@param df:每个用户分组的dataframe
"""
min_value = df["power_consumption"].min()
max_value = df["power_consumption"].max()
MIN=0
MAX=1
df["Rating_norm"] = df["power_consumption"].apply(
lambda x: MIN+(MAX-MIN)/(1+max_value-min_value)*(x-min_value))
return df
#(1+max_value-min_value) 为了防止分母为0的情况出现
ratings = data.groupby("user_id").apply(ratings_norm)
print('----11111111111111111-----')
print('ratings\n',ratings)
![](https://i-blog.csdnimg.cn/blog_migrate/7a698af7084be29b3026d3349415b9ce.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cdebb22172722ff1b7d24f3e148e34e8.png)
作者:电气 余登武