pandas 终极版1:创建和查看DataFrame数据 mysql读取数据
在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame。Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能;DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵活应用。
一、首先是引入pandas和numpy,这是经常配合使用的两个包,pandas依赖于numpy,引入以后我们可以直接使用np/pd来表示这个两个模块。
In [1]: import numpy as np
In [2]: import pandas as pd
1)通过二维数组创建数据框,我们看一下如何创建一个6X4的数据:randn函数用于创建随机数,参数表示行数和列数,dates创建的索引列。
In [3]: dates = pd.date_range('20170808',periods=6)In [4]: dates
Out[4]:
DatetimeIndex(['2017-08-08', '2017-08-09', '2017-08-10', '2017-08-11','2017-08-12', '2017-08-13'],dtype='datetime64[ns]', freq='D')In [5]: df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))In [6]: df
Out[6]: A B C D
2017-08-08 -0.251957 1.408053 -0.085674 0.365377
2017-08-09 -0.141047 0.445702 -0.560573 0.251600
2017-08-10 -0.218148 1.619402 -1.799525 -0.697128
2017-08-11 -0.542612 -1.401814 -0.158879 0.969136
2017-08-12 0.268779 -1.376531 0.950630 -1.041401
2017-08-13 0.488717 -0.267509 0.112117 -1.166227
2) 通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:索引是自动创建的整数
In [7]: df1 = pd.DataFrame({'姓名':["李小强","孙三","王玲","刘老四"],...: ...: '入学日期':pd.Timestamp('20170901'),...: ...: '性别':["男","男","女","男"],...: ...: '年龄':pd.Series([15,16,13,18],dtype='int32'),...: ...: '排名':np.array([1,3,2,4],dtype='float32'),...: ...: '是否':'yes'})In [8]: df1
Out[8]: 入学日期 姓名 年龄 性别 排名 是否
0 2017-09-01 李小强 15 男 1.0 yes
1 2017-09-01 孙三 16 男 3.0 yes
2 2017-09-01 王玲 13 女 2.0 yes
3 2017-09-01 刘老四 18 男 4.0 yes
3)读取外部文件csv,excel,txt
In [9]: df2 = pd.read_csv("/home/soft/st.csv",encoding='gbk')In [10]: df2
Out[10]: 姓名 入学日期 性别 年龄 排名 是否
0 李小强 2017-9-1 男 15 1 yes
1 孙三 2017-9-1 男 16 3 yes
2 王玲 2017-9-1 女 13 2 yes
3 刘老四 2017-9-1 男 18 4 yes
注意:有一个编码问题。encoding='gbk'
读取excel文件,文件里有两个表。
In [11]: df3 = pd.read_excel("/home/soft/st.xlsx",sheetname=[0,1],skiprows=[0])In [12]: df3
Out[12]:
OrderedDict([(0, 孙小强 2017-09-01 00:00:00 男 25 4 no0 李小红 2017-09-01 女 16 1 no1 张爱玲 2017-09-01 女 23 3 no2 王老五 2017-09-01 男 19 2 no),(1, 孙强 2007-09-01 00:00:00 男 125 4 yes0 李红 2007-09-01 女 216 1 no1 张玲 2007-09-01 女 223 3 yes2 王五 2007-09-01 男 319 2 no)])
#sheetname指定为读取几个sheet,sheet数目从0开始
#skiprows=[0]代表读取跳过的行数第0行,不写代表不跳过标题
读取txt文件
In [13]: df4 = pd.read_table("/home/soft/st.txt",encoding='gbk',sep=',',index_col=1)In [14]: df4
Out[14]: 姓名 性别 年龄 排名 是否
入学日期
2017-9-1 李小强 男 15 1 yes
2017-9-1 孙三 男 16 3 yes
2017-9-1 王玲 女 13 2 yes
2017-9-1 刘老四 男 18 4 yes
#index_col=1:设置第2列数据作为index
#sep=','以,为分隔符。
#header=None:没有每列的column name,可以自己设定
二、数据的查看
1.使用dtypes来查看各行的数据格式
In [15]: df1.dtypes
Out[15]:
入学日期 datetime64[ns]
姓名 object
年龄 int32
性别 object
排名 float32
是否 object
dtype: object
2.使用head查看前几行数据(默认是前5行),使用tail查看后5行数据
In [16]: df.head(3)
Out[16]: A B C D
2017-08-08 -0.251957 1.408053 -0.085674 0.365377
2017-08-09 -0.141047 0.445702 -0.560573 0.251600
2017-08-10 -0.218148 1.619402 -1.799525 -0.697128In [17]: df1.tail(2)
Out[17]: 入学日期 姓名 年龄 性别 排名 是否
2 2017-09-01 王玲 13 女 2.0 yes
3 2017-09-01 刘老四 18 男 4.0 yes
3.显示索引、列和底层的numpy数据:
In [18]: df.index
Out[18]:
DatetimeIndex(['2017-08-08', '2017-08-09', '2017-08-10', '2017-08-11','2017-08-12', '2017-08-13'],dtype='datetime64[ns]', freq='D')In [19]: df1.columns
Out[19]: Index([u'入学日期', u'姓名', u'年龄', u'性别', u'排名', u'是否'], dtype='object')In [20]: df2.values
Out[20]:
array([[u'\u674e\u5c0f\u5f3a', u'2017-9-1', u'\u7537', 15, 1, u'yes'],[u'\u5b59\u4e09', u'2017-9-1', u'\u7537', 16, 3, u'yes'],[u'\u738b\u73b2', u'2017-9-1', u'\u5973', 13, 2, u'yes'],[u'\u5218\u8001\u56db', u'2017-9-1', u'\u7537', 18, 4, u'yes']], dtype=object)
4.数据的快速统计汇总describe(),转置T。
In [21]: df.describe()
Out[21]: A B C D
count 6.000000 6.000000 6.000000 6.000000
mean -0.066044 0.071217 -0.256984 -0.219774
std 0.376911 1.319453 0.906105 0.869116
min -0.542612 -1.401814 -1.799525 -1.166227
25% -0.243504 -1.099276 -0.460149 -0.955333
50% -0.179597 0.089097 -0.122276 -0.222764
75% 0.166322 1.167466 0.062669 0.336933
max 0.488717 1.619402 0.950630 0.969136In [22]: df2.T
Out[22]: 0 1 2 3
姓名 李小强 孙三 王玲 刘老四
入学日期 2017-9-1 2017-9-1 2017-9-1 2017-9-1
性别 男 男 女 男
年龄 15 16 13 18
排名 1 3 2 4
是否 yes yes yes yes
5. 按轴进行排序和按值进行排序。
In [23]: df2.sort_index(axis=1,ascending=False)
Out[23]: 是否 排名 性别 年龄 姓名 入学日期
0 yes 1 男 15 李小强 2017-9-1
1 yes 3 男 16 孙三 2017-9-1
2 yes 2 女 13 王玲 2017-9-1
3 yes 4 男 18 刘老四 2017-9-1In [24]: df.sort_values('B')
Out[24]: A B C D
2017-08-11 -0.542612 -1.401814 -0.158879 0.969136
2017-08-12 0.268779 -1.376531 0.950630 -1.041401
2017-08-13 0.488717 -0.267509 0.112117 -1.166227
2017-08-09 -0.141047 0.445702 -0.560573 0.251600
2017-08-08 -0.251957 1.408053 -0.085674 0.365377
2017-08-10 -0.218148 1.619402 -1.799525 -0.697128
6.从mysql中读取数据,import MySQLdb
In [152]: conn=MySQLdb.connect(user="root",passwd="88888",host="192.168.2.245",db="school",charset="utf8")In [153]: sql="select * from student limit 6"In [154]: df = pd.read_sql(sql,conn)In [155]: df
Out[155]: id name Age
0 1 陈二 21
1 2 张路路 25
2 3 王五 35
3 4 历时 45
4 5 李四 35
5 6 赵六 75
下面是数据库里的数据
pandas 终极版1:创建和查看DataFrame数据 mysql读取数据相关推荐
- pandas使用iteritems函数迭代地查看dataframe中的每个数据列(iterate over each column of a dataframe)
pandas使用iteritems函数迭代地查看dataframe中的每个数据列(iterate over each column of a dataframe) 目录 pandas使用iterite ...
- 数据分析(六)之pandas学习【Series创建、切片、索引和读取外部数据】
数据分析学习线路图 为什么要学习pandas? 那么问题来了:numpy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢? nump ...
- Neo4j从mysql读取数据_[bigdata-086] python3+neo4j 从mysql数据库读取记录然后创建节点和关系写入到neo4j...
1. 测试 1.1web界面 http://tz211:7474/browser/ 在这里执行 MATCH (n) RETURN n,能看到节点和相互关系 一共是3个节点,6个相互关系 1.2 在2 ...
- [Pandas] 查看DataFrame的常用属性
导入数据 import pandas as pddf = pd.DataFrame([['L123','A',0,123],['L456','A',1,456],['L437','C',0,789], ...
- mysql数据库表的创建与查看
mysql数据库表的创建与查看 一.mysql查看 查看所有数据库 show databases 切换数据库 use 数据库名 查看该数据库下所有的表名 show tables 查看表的结构 desc ...
- pandas使用dataframe读写mysql数据库
文章目录 写入数据表 读取数据表 参考资料 写入数据表 首先要安装依赖包: pip install -i https://mirrors.aliyun.com/pypi/simple/ pymysql ...
- python pandas 读取数据库_数据分析-pandas从数据库读取数据
数据分析-pandas从数据库读取数据 使用pandas读取数据到DataFrame,对于只是数据分析来说,重点是读取数据,读取数据过程越简单越好,并不需要写得很复杂显得自己很厉害的样子.最好就是代码 ...
- DE连接,创建数据集,数据导入以及数据导出(转载)
转自:http://blog.csdn.net/kone0611/article/details/51532006 界面 2.数据库的连接 [csharp] view plaincopy IWorks ...
- 【Python爬虫系列教程 11-100】Python网络爬虫实战:最简单的Pandas 中的read_html一行代码爬取网页表格型数据,就可以爬取虎扑体育NBA球员信息
文章目录 爬取对象 分析 实现代码 爬取对象 虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. ...
最新文章
- pma mysql_Table ‘phpmyadmin.pma_table_uiprefs’ doesn’t exist mysql
- 17,Scatter函数
- Apache CXF实战之六 创建安全的Web Service
- flutter 一行代码取消 返回按钮
- 雅虎核心业务售与Verizon:互联网先驱的时代终结
- 【LiveVideoStack线上分享】WebAssembly在Web多媒体领域的相关实践
- 讲述华为发布鸿蒙系统,华为鸿蒙系统正式版首批升级名单公布:这8款机型用户有福了!...
- maven 多项目搭建
- 吴恩达深度学习的实用层面编程作业:正则化Regularization
- cad通过钢筋大样生成钢筋明细表插件_易图(CAD插件For2016-2018)下载|易图(CAD插件For2016-2018)官方版下载_v18.3.1_9号软件下载...
- 第05课:Redis 实际应用中的异常场景及其根因分析和解决方案
- c语言程序设计答案苏小红,C语言程序设计苏小红版答案[推荐阅读]
- 时间加减计算器_手机计算器别只拿来算数!教你这样开启,能唤出隐藏功能,很实用...
- 网络技术 | Cisco Packet Tracer 6.2安装包 安装教程
- 直到黎明 Until Dawn 后感
- Android studio报Error:Expected NDK STL shared object file at libgnustl_shared.so
- Swift4打造今日头条视频实战视频教程
- Dropout Batch Normolization
- android屏幕共享demo,屏幕共享
- final-期末大作业-制作AR射箭小游戏(Unity AR配置详细教程)
热门文章
- 上手机器学习前,先来学习下Python相关的环境配置吧~
- 安装TextPad后无“Compile Java” 等选项的解决办法
- 大海航行靠舵手,FONE将把财务数字化的航船带向何方?
- top X 好听的英文歌
- Python全栈之路---day01(背景、语法初识)
- 今日报错系列:没有找到 或上一个增量链接没有生成它;正在执行完全链接
- php下载pdf并保存图片大小,php根据URL下载图片、压缩包、pdf等远程文件到本地
- 收发一体超声波测距离传感器模块_空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程...
- ad域推送软件_Windows域推送软件、域推送安装msi程序、域推送安装软件的方法-MSI文件...
- AI 帮忙找 Bug,英特尔开源代码编程工具ControlFlag