Python数据分析

这篇博客介绍了Python数据分析的基础,包括Numpy、Pandas、Matplotlib、Scipy、Statsmodels和Scikit-learn等库的用途。内容涵盖数据导入导出、数据筛选、统计描述、处理缺失值、统计分析和可视化等方面,特别提到了数据读取CSV、Excel和SQL数据库的方法,以及t检验、卡方检验等统计方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客总结数据分析的相关基础知识,思维导图如下:

1.Numpy

        Numpy是python科学计算的基础包,它提供以下功能(不限于此)

        (1)快速高效的多维数据对象ndarray。

        (2)用于对数组执行元素级计算以及直接对数据执行数学运算的函数。

        (3)用于读写硬盘上基于数组的数据集的工具。

        (4)线性代数运算、傅里叶变换,以及随机数生成。

        (5)用于将C、C++、Fortran代码集成到python工具。

2.pandas

        pandas提供了使我们能够快速便捷地处理机构化数据地大量数据结构和函数。pandas兼具Numpy高性能地数据计算功能以及电子表格和关系型数据(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。

3.matplotlib

        matplotlib是最流行地用于绘制数据图表地python库。

4.Scipy

        Scipy是一组专门解决科学计算中各种标准问题域地包的集合。

5.statsmodels        

        statsmodels是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化。statsmodels包含更多的“经典”频率学派统计方法,而贝叶斯方法和机器学习模型可在其他库中找到。

        包含在statsmodels中的一些模型:

        线性模型,广义线性模型和鲁棒线性模型。

        象形混合效应模型。

        方差分析(ANOVA)方法。

        时间序列过程和状态空间模型。

        广义的矩量法。

6.scikit-learn

        scikit-learn项目需要NumPy和Scipy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。

一.数据导入和导出

(一)读取csv文件

1.本地读取

import pandas as pd

df = pd.read_csv('E:\\tips.csv') 

 2.网络读取

import pandas as pd

data_url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv" #填写url读取
df = pd.read_csv(data_url)

(二)读取MySQL数据

        假设数据库安装在本地,用户名为root,密码为空,要读取test数据库中的数据。

import pandas as pd
import MySQLdb

mysql_cn= MySQLdb.connect(host='localhost', port=1024,user='root', passwd='', db='test')
df = pd.read_sql('select * from test_user;', con=mysql_cn)    
mysql_cn.close()

       上述代码读取test_user表中的所有数据到df中,而df的数据结构为Dataframe。

(三)读取excel文件

        要读取excel文件需要安装xlrd模块。

df = pd.read_excel('E:\\tips.xls')

(四)数据导出到csv文件

df.to_csv('E:\\demo.csv', encoding='utf-8', index=False)
#index=False表示导出时去掉行名称,如果数据中含有中文,一般encoding指定为‘utf-8’

(五)读写SQL数据库

import pandas as pd
import pymysql

con = pymysql.connect(host='localhost', port=1024,user='root', passwd='', db='test')
sql = 'select * from test_user;'
df = pd.read_sql(sql, con)

二.提取和筛选需要的数据

(一)提取和查看相应数据

    打印数据前五行 -- print(df.head())

    打印数据后五行 -- print(df.tail())

    打印列名 -- print(df.columns)

    打印行名 -- print(df,index)

    打印10~20行前三列数据 -- print(df.ix[10:20, 0:3])

    提取不连续行和列的数据,这个例子提取的是1,3,5行,第2,4列的数据 -- df.iloc[[1,3,5],[2,4]]

    提取某一个数据,例如:提取第三行第二列数据(默认从0开始计算) -- df.iat[3,2]

    舍弃数据前两列 -- df.drop(df.columns[1,2],axis=1)

    舍弃数据前两行 -- df.drop(df.cloumns[[1,2]],axis=0)

    打印维度 -- df.shape

    选取第N行 -- df.iloc[N]

    选取第N到第M行 -- df.iloc[N:M+1]

    选取第N行M列的元素 -- df.iloc[N,M]

(二)筛选出需要的数据

    筛选出小费大于$8的数据 -- df[df.tip>8]

    筛选出小费大于$7或总账单大于$50的数据 -- df[(df.tip>7)|(df.total_bill>50)]

    筛选出小费大于$7且总账单大于$50的数据 -- df[(df.tip>7)&(df.total_bill>50)]

    筛选出结果后只关心day和time -- df[['day','time']][(df.tip>7)&(df.total_bill>50)]

三.统计描述

    描述性统计 -- df.describe()

四.数据处理

(一)数据转置 -- df.T

(二)数据排序 -- df.sort_values(by='tip')

(三)缺失值处理

     1.填充缺失值 

import json  #python有许多内置或第三方模块可以将JSON字符串转换成python字典对象import pandas as pd
import numpy as np
from pandas import DataFrame
path = 'F:\PycharmProjects\pydata-book-master\ch02\usagov_bitly_data2012
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值