python数据分析——数据重构

数据重构

  • 数据聚合与运算
    • 数据运用

数据聚合与运算

       python中groupby函数主要的作用是对数据进行分组以及分组后地组内运算,运算规则如下:

  1. 单类分组:data.groupby(‘字段’)
    describe()描述组内数据的基本统计量,data.groupby(‘字段1’)[‘字段2’].describe().unstack(),data数据集按照字段1分组,并对字段2的数据进行描述性分析,unstack()是索引重排,去掉则以树状形排列。
  2. 多类分组:data.groupby([‘字段1’,‘字段2’]).mean(),表示对data数据按照字段1和字段2进行分组,并计算组内数据均值。data.groupby([‘字段1’,‘字段2’]).mean().agg(np.sum,np.mean,np.std)表示对组内数据同时计算合计、均值和方差。
  3. data.groupby(‘字段1’).agg({‘字段2’:‘mean’,‘字段3’:‘sum’})

数据运用

import numpy as np
import pandas as pd
data = pd.read_csv('result.csv')
data.head()

python数据分析——数据重构_第1张图片
1.计算泰坦尼克号男性与女性的平均票价

#第一种方法
#data.groupby('Sex')['Fare'].mean()
#第二种方法
data['Fare'].groupby(data['Sex']).mean()

2.统计泰坦尼克号中男女的存活人数

data.groupby('Sex')['Survived'].sum()

3.计算客舱不同等级的存活人数

data.groupby('Pclass')['Survived'].sum()

4.可以通过agg()函数来同时计算不同性别平均票价和不同客舱男女人数。并且可以使用rename函数修改列名

data.groupby('Sex').agg({'Fare':'sum','Pclass':'count'}).rename({'Fare': 'mean_fare', 'Pclass': 'count_pclass'})

5.统计在不同等级的票中的不同年龄的船票花费的平均值

data.groupby(['Pclass','Age'])['Fare'].mean()

6.数据合并

result = pd.merge(means,survived_sex,on='Sex')
task = pd.concat([task_2,task_3],axis=1)
task.to_csv('sex_fare_survived.csv',encoding='utf-8-sig')

**7.
merge、concat、append区别:

      merge相当于SQL中的JOIN,merge是把具有相同列的表整合到一张表里pd.merge(left,right,how=‘inner’,on=None,left_on=None, right_on=None,left_index=False, right_index=False, sort=True,suffixes=(’_x’, ‘_y’), copy=True,indicator=False)

  • left与right:两个不同的DataFrame
  • how:{inner,left,right,outer}合并方式
  • on:用于连接的两个索引名称,即两张表中共同列
          concat默认情况下,纵向连接两张dataframe。pd.concat(['df1,df2],axis=0)
          append默认情况下与concat一致,都是纵向连接表。df1.append(df2,ignore_index=True),若要横向连接表,则ignore_index=False

你可能感兴趣的:(python数据分析——数据重构)