numpy pandas Matplotlib二、介绍三剑客:
1.Numpy:Python语言的一个扩展程序库,支持大量的维度数据与矩阵运算,针对数组提供大量的数学函数库
2.pandas:是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
3.Matplotlib:是一个python绘图包
1、下载使用Python类库集成安装包
2、pip3 install pandas
3、使用jupyter–》Jupyter Notebook
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 安装: pip3 install jupyter(需要python3.3或更高版本,或python2.7) ;运行: jupyter notebookpandas的两种数据结构
1.Series
2.DataFrame
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.243.128/sc"
engine=create_engine(con_string)
conn=engine.connect()
#向数据库里插入数据
df.to_sql("userinfo", conn, index=False, if_exists="append")



