Python数据分析

      数据分析主要使用一些工具对一堆数据做处理,然后整理成相关图表,最后得出分析结论。数据分析工具很多,比如:Excel、python、还有一些商业BI工具等。Excel操作简单,可视化操作。如果处理的数量比较大时,处理起来就很麻烦,加载很慢。本次我们简单介绍些Python在数据分析方面的应用。

       Python是一门动态脚本语言,语法简单,入门快。这门语言的应用很广泛,在最近几年开发语言排行榜靠前,仅次于Java、C。用途很广泛,比如:Web开发、数据分析、桌面应用、机器学习等

1. 运行Python

大部分系统自带了Python解释器(windows需要额外安装)。运行Python代码有两种方式:控制台和文件方式

第1种:打开控制台 → 敲入python → print("hello")

第2种:将python代码写入文件中,比如:demo.py,然后运行 python demo.py即可。

2. 基础介绍

2.1 变量

a = "hello"
b = 100
c = True

2.2 列表

list = [1,2,3]
names = ["xiaoming", "zhangsan", "lisi"]
list[:]
list[1:2]

2.3 字典

dict = {"name":"xiaoming", "age":100}
dcit['name']

2.4 函数 

# 函数定义
def getName():
    return "hello"


# 函数调用
getName()

2.5 模块

# 导入模块
import os
import sys

3. Pandas库介绍

pandas是基于numpy封装的科学计算库,提供很多函数用于数据分析、处理。

3.1 Dataframe

是一个二维数组,类似一张表格,有表头字段,列索引字段

4. 数据分析流程

4.1 数据采集

数据采集可以直接读取文件、数据库或者爬虫等,这里我们主要读取文件中的数据

import pandas as pd
pd.read_csv()   # 读取csv、tsv格式文件
pd.read_excel()    # 读取excel
pd.read_table() # 读取txt文本
pd.read_sql()    # 从数据库读取


举例

In [184]: df = pd.read_csv('student.csv')
In [185]: df
Out[185]:
   id       name  age  gender
0   1      xiamo   20    male
1   2    xiaohua   20  female
2   3  xiaoqiang   25    male
3   4     xiaoli   22  female
4   5    xiaohua   20  female

4.2 数据预处理 

4.2.1 缺失值处理

df.isnull() #检测空值

df.fillna('') #填充空值

df.isnull().any() #检测哪一列有空值

df['age'].fillna(df['age'].mean(), inplace=True)

df.dropna(how='all',inplace=True) #删除空行

4.2.2 重复值处理

df.drop(index=0)

df.drop_duplicates() #去除重复行

4.2.3 类型转换

df['name'].str.lower()  #转小写

df['name'].str.upper() # 转大写

df['name'].str.strip() #去掉指定字符

df['age'].astype(np.int64)

4.3 数据计算

4.3.1 统计数量

In [89]: df1.sum()
Out[89]:
A     9
B    12
C    15
dtype: int64

4.3.2 计算平均值

In [90]: df1.mean()
Out[90]:
A    3.0
B    4.0
C    5.0
dtype: float64

4.3.3 最大值、最小值、中间值

In [96]: df1.describe()
Out[
96]: A B C count 3.0 3.0 3.0 mean 3.0 4.0 5.0 std 3.0 3.0 3.0 min 0.0 1.0 2.0 25% 1.5 2.5 3.5 50% 3.0 4.0 5.0 75% 4.5 5.5 6.5 max 6.0 7.0 8.0

4.4 数据导出 

import pandas as pd
pd.to_csv()
pd.to_excel()
pd.to_table()

4.5 数据可视化

将数据用图表展示出来,直观,要安装一些第三方库,比如:


matplotlib
seaborn

将数据展示为折线图、饼图、散点图等等

 

5 案例分析

5.1 读取文件

import pandas as pd

In [277]: df = pd.read_csv('student.csv')

In [278]: df
Out[278]:
id name age gender
0 1 xiamo NaN male
1 2 xiaohua 20.0 female
2 3 xiaoqiang NaN Male
3 4 xiaoli 22.0 female
4 5 xiaohua 20.0 Female
5 5 xiaohua 20.0 female

5.2 数据处理

df.fillna(0)  # 空值默认为0

df['gender'] = df['gender'].str.lower()  # 性别转为小写

df.drop_duplicates() #去掉重复行

In [284]: df.drop_duplicates()
Out[284]:
id name age gender
0 1 xiamo 0.0 male
1 2 xiaohua 20.0 female
2 3 xiaoqiang 0.0 male
3 4 xiaoli 22.0 female
4 5 xiaohua 20.0 female

5.3 数据统计

统计男女性别人数

In [285]: df.groupby('gender').count()
Out[285]:
id name age
gender
female 4 4 4
male 2 2 2

5.4 数据导出

df2.to_csv('result.csv')

5.5 数据可视化

饼图展示统计结果

 df3 = df2.reset_index()

plt.pie(x=df3['age'], labels=df3['gender'])

6.参考

http://pandas.apachecn.org/

https://pandas.pydata.org/pandas-docs/stable/reference/index.html#api

http://www.360doc.com/content/19/0124/18/7669533_811054697.shtml

 
原文地址:https://www.cnblogs.com/xiaodekaixin/p/12707581.html