数据分析:高手如何做数据分析?这11招是你应该具备的技能

转载自云栖社区《高手如何做数据分析?这11招是你应该具备的技能》

https://yq.aliyun.com/articles/601474?utm_content=m_1000001140

import pandas as pd
import numpy as np

file = 'D:/my_project/Titanic_disaster/train.csv'
df = pd.read_csv(file)

# 1. 数据集的字符处理
# 第一招:对列的处理
df.rename(columns={'Survived': '是否获救', 'Name': '姓名', 'Pclass': '船舱等级', 'Sex': '性别', 'Age': '年龄', 'SibSp': '兄弟姐妹数',
                   'Parch': '父母小孩数', 'Ticket': '船票', 'Fare': '船票费'})

# 第二招:对数据集里面特定字符串进行替换
df['性别'].mpa({'female':'女','male':'男'})

# 第三招:对列的字符进行替换
df['船票'] = df['船票'].str.replace(r'[^d+]','')
print(df.head(3))

# 2. 数据集的过滤
# 第四招:用逻辑表达式组合过滤
df[(df['性别']=='女') & (df['年龄']<=10)]  #提取性别是女孩且年龄在10岁以下的

# 第五招:巧用不等式
df[(df['是否获救']==1) & (df['船舱等级']!=3)]  #提取非3等舱,且获救乘客信息

# 第六招:也可以用query函数
df.query('船舱等级==[1,2]')

# 3.数据的分类
# 第七招:用where函数
df['是否成年'] = np.where(df['年龄']>=18, '成年','未成年')

# 第八招:用万能的apply函数
def convert_age(age):
    if age>0 and age<=10:
        return '小孩'
    elif age<=18:
        return '青年'
    elif age<=50:
        return '成人'
    else:
        return '老人'
df['年龄分类'] = df['年龄'].apply(convert_age)

# 4.数据的切片和透视表
# 第九招:神奇的groupby函数
df.groupby('性别')['是否获救'].count()

# 第十招:对数据进行轴切片分析
df.groupby(['是否获救','船舱等级'])['年龄'].agg(['size','max','min','mean'])

# 第十一招:数据透视表
df.pivot_table(columns=['性别'],index=['是否获救','船舱等级'],values='年龄',aggfunc={'年龄':[np.mean,min,max]})

你可能感兴趣的:(数据分析:高手如何做数据分析?这11招是你应该具备的技能)