pandas简单介绍
一、python数据分析三剑客:
numpy
pandas
Matplotlib
二、介绍三剑客:
1.Numpy:Python语言的一个扩展程序库,支持大量的维度数据与矩阵运算,针对数组提供大量的数学函数库
2.pandas:是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
3.Matplotlib:是一个python绘图包
三、pandas的安装
1、下载使用Python类库集成安装包
2、pip3 install pandas
3、使用jupyter–》Jupyter Notebook
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。
安装: pip3 install jupyter(需要python3.3或更高版本,或python2.7) ;运行: jupyter notebook
pandas的两种数据结构
1.Series
2.DataFrame
一、Series
1.series定义:Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。Seriers的交互式显示的字符串表示形式是索引在左边,值在右边。 类似一个有序的字典。
2.仅有数据列表即可产生最简单的Series
import pandas as pd
import numpy as np
s1 = pd.Series([1,'a',5.2,7])
#左侧为索引,右侧是数据
s1
0 1
1 a
2 5.2
3 7
dtype: object
# 获取数据
s1.values
array([1, 'a', 5.2, 7], dtype=object)
3.创建一个具有标签索引的Series
s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c'])
s2
d 1
b a
a 5.2
c 7
dtype: object
#查看s2的索引
s2.index
Index(['d', 'b', 'a', 'c'], dtype='object')
4.使用Python字典创建Series
sdata={'a':35000,'b':72000,'c':16000,'d':5000}
s3=pd.Series(sdata)
s3
a 35000
b 72000
c 16000
d 5000
dtype: int64
5.根据标签索引查询数据,类似Python的字典dict
s2
d 1
b a
a 5.2
c 7
dtype: object
s2['a']
5.2
type(s2['a'])
float
s2[['b','a']]
b a
a 5.2
dtype: object
type(s2[['b','a']])
pandas.core.series.Series
二、DataFrame
1、DataFrame定义:DataFrame是一个表格型的数据结构
每列可以是不同的值类型(数值、字符串、布尔值等)
既有行索引index,也有列索引columns
可以被看做由Series组成的字典
2、根据多个字典序列创建dataframe
data={
'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]
}
df = pd.DataFrame(data)
df
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.9
#查看列的类型
df.dtypes
state object
year int64
pop float64
dtype: object
#查看有哪些列
df.columns
Index(['state', 'year', 'pop'], dtype='object')
#查看行的索引
df.index
RangeIndex(start=0, stop=5, step=1)
df[['state','year']]
state year
0 Ohio 2000
1 Ohio 2001
2 Ohio 2002
3 Nevada 2001
4 Nevada 2002
3、根据从文件、mysql中读取创建dataframe
读取csv、txt文件 --> read_csv()
读取xlsx文件 --> read_excel()
读取mysql数据库 --> read_sql()
从网页读取table -->read_html()
fpath = "./datas/read_test.csv"
df = pd.read_csv(fpath)
df
date prov isp pv uv
0 2020-04-26 hunan cmnet 2000 1000
1 2020-04-26 hunan cmnet 3000 1500
2 2020-04-26 hunan cmcc 4000 1000
3 2020-04-26 hubei ctc 2500 1000
4 2020-04-26 hubei cmcc 2000 1000
5 2020-04-26 hubei ctc 2100 1600
6 2020-04-27 hunan cmnet 4000 1700
7 2020-04-27 hunan cmnet 3200 1500
8 2020-04-27 hunan cmcc 2800 1600
9 2020-04-27 hubei ctc 2600 1400
10 2020-04-27 hubei cmcc 3800 1900
11 2020-04-27 hubei ctc 2400 1900
#从网页中拉取table数据:
url = 'http://ranking.promisingedu.com/qs'
df = pd.read_html(url)[0]
df
#从数据库拉取
import pymysql
conn = pymysql.connect(
host='192.168.243.128',
user='sc',
password='123456',
database='sc',
charset='utf8'
)
#用mysql_page这个变量临时存放从数据库里面拉取到的表格,如果出现警告(warnings.warn)是没关系的
#向数据库里读取数据
mysql_page = pd.read_sql("select * from userinfo", con=conn)
mysql_page
username userage
0 sc1 12
1 sc2 14
2 sc3 13
df_dict = {
'username':["liuhongjie","shimengmeng"],
'userage':[11,12]
}
#向df中插入两行数据
df = pd.DataFrame(df_dict)
df
username userage
0 liuhongjie 11
1 shimengmeng 12
import pandas as pd
from sqlalchemy import create_engine
con_string = "mysql+pymysql://sc:123456@192.168.0.10/sc"
engine=create_engine(con_string)
conn=engine.connect()
#向数据库里插入数据
df.to_sql("userinfo", conn, index=False, if_exists="append")
文章出处登录后可见!
已经登录?立即刷新