pandas 哑变量处理 聚合 分组

 

 

 

 

哑变量处理 pd.get_dummies(table,columns=['column1',''...])

 pd.get_dummies(combined_data_table,columns=["星座",'学科'],drop_first=True)  # drop_first 星座有5种,设置为True后,会删掉一种。统计学里头自由度为n-1,最后一种是多余的。

 

 

 

 

 

 

 

批量操作 df.apply(func)

processed_data_table["星座"].apply(lambda x: x+"座")

 

def func(string):
   return string+"座"

processed_data_table["星座"].apply(func)

 

数据标准化

离差标准化

combined_data_table["离差标准化成绩"] = (combined_data_table["成绩"] - combined_data_table["成绩"].min()) \
/ (combined_data_table["成绩"].max() - combined_data_table["成绩"].min())

标准差标准化

combined_data_table["标准差标准化成绩"] = (combined_data_table["成绩"] - combined_data_table["成绩"].mean()) \
/ combined_data_table["成绩"].std()

整列合并计算 df1.agg({'column1':np.means,'column2':'mode'})

# agg 聚合简写,np.mean 对列取平均,mode 众数
table.agg({"成绩": np.mean, "星座": 'mode'})

 

 

 

分组统计 df1.groupby()

groupby_res = processed_data_table.groupby(by=["学科"], axis=0)

# 对分组结果进行批量变换,原表返回
groupby_res.apply(lambda x: x)

# 分组统计均值
groupby_res.apply(lambda x: x.mean())

# 对每个成绩进行对应学科的标准差标准化.组内标准化
groupby_res["成绩"].apply(lambda x: (x-x.mean())/ x.std() )

# 分组差别化统计
groupby_res.agg({"姓名": 'count', "成绩": 'mean'})

 

 

 

 

 

posted @ 2021-03-09 23:03  正在学Python  阅读(389)  评论(0编辑  收藏  举报