pandas的简单介绍和数据结构

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")

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年5月9日
下一篇 2022年5月9日

相关推荐