import pandas as pd
pd.options.display.max_rows = 10 # 设置显示行数
df1 = pd.read_csv(r'E:\anacondatest\PythonData\高校信息.csv', encoding='gbk', index_col='学校名称')
# 数据拆分,生成的是分组索引标记,而不是新的DF
df2g = df1.groupby('类型')
# print(df1g.groups) # 查看分类详情
# print(df1g.describe()) # 查看简单的数据统计描述,均值,最大值,最小值,标准差等等
df3g = df1.groupby(['类型', '所在省份'])
print(df3g.mean()) # 对分类后的数据进行平均数统计
'''
名次 总分
类型 所在省份
农林 北京 60.0 65.92
广东 95.0 63.64
江苏 46.0 65.90
湖北 49.0 65.77
'''
df2g.get_group('农林').mean()
df3g['名次'].max()
# 分组汇总
df3g.agg('count')
df3g.agg('size')
df3g.agg('sum', 'median')
df3g.agg('std')
df3g.agg('max')
# 长型和宽型数据转换
df3 = pd.read_excel(r'E:\anacondatest\PythonData\儿童生长研究.xlsx', index_col=[0, 2])
df3s = df3.stack()
# 长宽型格式自由转换
df3s.unstack([1, 2])
# 数据转置
print(df3.T)
# 数据纵向合并,如果合并多个,束脚裤放在列表里
df4 = df1.append(df3, ignore_index=False, verify_integrity=False) # 要注意索引值是否会重复,ignore_index添加时忽略索引,verify_integrity是否检查索引唯一性
df5 = df1.append([df3, df3])
# 数据的横向合并
pd.merge(df3, df3)