pandas是基于numpy的一种数据分析工具,熟练使用pandas可以大大降低我们的工作量
引入pandas包:

import numpy as np
import pandas as pd

pandas数据类型

pandas有两种数据类型:series和dataframe。
series是一种一维数据结构,每一个元素都有一个索引,与一维数组类似。索引可以使数字或者字符串,series结构如下:

dataframe则是二维数据结构,其存在于excel表格类似,有对应的行和列,其结构如下:

Series对象的创建

例1
#我们可以直接用Series函数来创建对象
import numpy as np
import pandas as pd
a=pd.Series([1,2,3,4,5])
print(a)
'''
输出为:
0    1
1    2
2    3
3    4
4    5
dtype: int64
#程序会自动生成index,从0开始编号
'''
例2
#当然也可以指定index,并且Series可以使用已有的列表、元素来创建对象,也可以利用ndarray来创建
import numpy as np
import pandas as pd
a=np.array([1,2,3,4,5,6])
b=pd.Series(a,index=['a','b','c','d','e','f'])
print(b)
'''
输出为:
a    1
b    2
c    3
d    4
e    5
f    6
dtype: int32
'''
例3
#Series也可以用来创建时间序列,但是必须指定start,end,period中最少两个值
import numpy as np
import pandas as pd
b=pd.date_range('20200101','20200106')
print(b)
'''
输出为:
DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04','2020-01-05', '2020-01-06'],dtype='datetime64[ns]', freq='D')
'''

DataFrame对象的创建

DataFrame有行名和列名,行列名我们都可以进行定义我个人理解的构造函数如下

pd.DataFrame(object,index=,columns=)
例1
import numpy as np
import pandas as pd
s=np.arange(1,7)
s=s.reshape(2,3)
a=pd.DataFrame(s,index=['a','b'],columns=['A','B','C'])
print(a)
'''
输出为:A  B  C
a  1  2  3
b  4  5  6
'''
例2
#还可以通过字典来创建DataFrame对象,键值对应index
import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':pd.Categorical(['18','19']),'score':pd.Categorical(['99','98'])})
print(a)
'''
输出为:name age score
0    dn  18    99
1  muss  19    98
'''

DataFrame属性

查看数据类型

我们可以使用DataFrame.dtypes函数来查看每一列的数据类型

import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':18,'score':pd.Series(np.arange(98,100))})
print(a.dtypes)
'''
输出为:
name     category
age         int64
score       int32
dtype: object
'''

查看索引和列名

利用DataFrame.index函数来查看索引
import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':18,'score':pd.Series(np.arange(98,100))})
print(a.index)
'''
输出为:RangeIndex(start=0, stop=2, step=1)
'''
利用DataFrame.columns函数来查看列名
import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':18,'score':pd.Series(np.arange(98,100))})
print(a.columns)
#输出为Index(['name', 'age', 'score'], dtype='object')

查看数据和统计信息

利用DataFrame.values函数来查看数据
import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':18,'score':pd.Series(np.arange(98,100))})
print(a.values)
'''
输出为:
[['dn' 18 98]['muss' 18 99]]
'''
利用DataFrame.describe()函数查看统计信息
import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':18,'score':pd.Series(np.arange(98,100))})
print(a.describe())
'''
输出为:age      score
count   2.0   2.000000
mean   18.0  98.500000
std     0.0   0.707107
min    18.0  98.000000
25%    18.0  98.250000
50%    18.0  98.500000
75%    18.0  98.750000
max    18.0  99.000000Process finished with exit code 0'''

DataFrame常用操作

转置

关于转置操作不用多说了,numpy部分已经说过了

import numpy as np
import pandas as pd
a=pd.DataFrame({'name':pd.Categorical(['dn','muss']),'age':18,'score':pd.Series(np.arange(98,100))})
print(a.T)
'''
输出为:0     1
name   dn  muss
age    18    18
score  98    99
'''

排序

排序分为按照index排序和按值排序

按照index排序
import numpy as np
import pandas as pd
s=np.array([6,5,4,3,2,1]).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a.sort_index(axis=1))
'''
输出为:a  b
0  6  5
1  4  3
2  2  1
'''
按值排序
import numpy as np
import pandas as pd
s=np.array([6,5,4,3,2,1]).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a.sort_values(by='b'))
'''
输出为:a  b
2  2  1
1  4  3
0  6  5
'''

数据选择

选择列

这将会返回一个单独的列,相当于一个Series对象

import numpy as np
import pandas as pd
s=np.arange(1,7).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a['a'])
'''
输出为:
0    1
1    3
2    5
'''

选择行

一个道理

#这里我有点迷,直接用行索引会报错,只有使用切片才可以输出,假如想输出第一行就用0:1的方法。
import numpy as np
import pandas as pd
s=np.arange(1,7).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a[0:1])
'''
输出为:a  b
0  1  2
'''

标签选择loc

loc用来获得一个交叉的区域,比如我们想要第1,2行的第a,b列的数据:

import numpy as np
import pandas as pd
s=np.arange(1,7).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a)
print('.')
print(a.loc[[1,2],['a','b']])
'''
输出为:a  b
0  1  2
1  3  4
2  5  6
.a  b
1  3  4
2  5  6
'''

当然也可以用来获取单行单列的数据。

import numpy as np
import pandas as pd
s=np.arange(1,7).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a.loc[1])
'''
输出为:a  b
0  1  2
1  3  4
2  5  6
.
a    3
b    4
Name: 1, dtype: int32
'''

位置选择iloc

loc是通过标签来对行列进行选择,而iloc是通过行列的位置进行选择,比如说想要第二列,那列位置就写2(假设从1开始).

import numpy as np
import pandas as pd
s=np.arange(1,7).reshape(3,2)
a=pd.DataFrame(s,index=[0,1,2],columns=['a','b'])
print(a)
print('.')
print(a.iloc[[0,1],0:1])
'''
输出为a  b
0  1  2
1  3  4
2  5  6
.a
0  1
1  3
'''

读取文件和导出操作

导入函数 导出函数功能
read_csv to_csv
read_excel to_excel
read_sql to_sql
read_json to_json
read_msgpack to_msgpack
read_html to_html
read_gbq to_gbq
read_stata to_stata
read_sas to_sas
read_clipboard to_clipboard
read_pickle to_pickle

常用统计方法

函数 解释
count 非 NA 值的数量
describe 针对 Series 或 DF 的列计算汇总统计
min , max 最小值和最大值
argmin , argmax 最小值和最大值的索引位置(整数)
idxmin , idxmax 最小值和最大值的索引值
quantile 样本分位数(0 到 1)
sum 求和
mean 均值
median 中位数
mad 根据均值计算平均绝对离差
var 方差
std 标准差
skew 样本值的偏度(三阶矩)
kurt 样本值的峰度(四阶矩)
cumsum 样本值的累计和
cummin , cummax 样本值的累计最大值和累计最小值
cumprod 样本值的累计积
diff 计算一阶差分(对时间序列很有用)
pct_change 计算百分数变化

30分钟完成pandas入门相关推荐

  1. 30分钟git命令入门到放弃

    30分钟git命令入门到放弃 Helkyle・ 15 小时前 172 | 暂无评论 这是一篇给像我这样的新手或者是熟悉图形工具的老鸟看的.仅作为快速入门的教程. learn-git git 现在的火爆 ...

  2. python 30分钟_一张图30分钟快速Python入门

    国外一个大牛使用一张图来讲述Python的基本概念,让你30分钟快速入门.通过该程序,可以了解快速Python语言基本的语法结构和使用方法,它的基本程序如下: 当然看不懂没关系这里还有中文版的 # - ...

  3. 【视频】谷歌大佬30分钟让你入门机器学习(2019谷歌I/O资源分享)

    如果你是个谷粉,就一定会知道: 谷歌向来都很大胆.当所有的科技公司都在讲产品.讲利润的时候,2019年的谷歌开发者大会的主题却是:人文关怀.要知道,这是政府操心的事,而不是一家公司的任务. 谷歌敢这样 ...

  4. 一张图30分钟带你入门python-我,30分钟,P了100张图,秒杀全公司同事

    原标题:我,30分钟,P了100张图,秒杀全公司同事 今天,想为大家推荐一款超惊艳的工具,可以让每一个设计汪,瞬间找到人生开挂的感觉! 在这之前,先跟为大家分享个真实的故事. "这感觉真是太 ...

  5. 30 分钟 git 命令入门

    git 现在的火爆程度非同一般,它被广泛地用在大型开源项目,团队开发,以及独立开发者,甚至学生之中. 初学者非常容易被各种命令,参数吓哭.但实际上刚上手你并不需要了解所有命令的用途.你可以从掌握一些简 ...

  6. 一张图30分钟带你入门python-大数据时代来了!神级程序员一张图帮你梳理Python脉络,快速入门...

    python语言是我目前为止用的最爽的语言,因为它真的很优美.虽然c,c++,java也非常的强大和伟大,但是每一种语言伟大的背后都是有一定的时代背景. 在PC时代大量的嵌入式的设备,底层的代码,以及 ...

  7. JB的Shell之旅-30分钟带你入门

    前言 写这篇文章的目的很简单,因为爱并恨过: 前段时间要改个安卓产品的脚本,惊奇发现理论是用shell,虽然实现的功能不复杂,但如果对没了解过shell或懂皮毛的同学,改起来是相当痛苦(如jb),调试 ...

  8. 30分钟Cadence原理图入门

    新建工程 点击Design Entry CIS图标,选择OrCAD Capture. 新建工程File->New->Project 设置工程名字和路径. 默认生成PAGE1 新建页 右键点 ...

  9. 30分钟带你入门Oracle

    ps:关键字和语法用红色字体标明,代码用蓝色字体标明 一.一些定义 1.数据类型 字符数据类型       char  固定长度字符串 1~2000字节       varchar2 可变长度字符串 ...

最新文章

  1. LoRDEC: a tool for correcting errors in long sequencing reads 纠正长序列读取错误的工具
  2. Xilinx Axi Dma Userspace模式下 寄存器 +MMAP 测试程序
  3. python面试题之有没有一个工具可以帮助查找python的bug和进行静态的代码分析?
  4. image 微信小程序flex_第三天学习微信小程序开发总结
  5. Image-to-Image Translation with Conditional Adversarial Networks
  6. CentOS获取软件安装包源码
  7. 倒计时 1 天丨微信大数据挑战赛,即将启动报名
  8. Unity——RectTransform详解
  9. Office快捷键汇总(仅供学习交流)
  10. “GANs之父”Goodfellow 38分钟视频亲授:如何完善生成对抗网络?(上)
  11. 按钮按下时立体感效果
  12. 计算机休眠不播放音乐,电脑休眠后不能播放音乐怎么办
  13. 【Android实现返回主页,禁止返回上一层等功能】
  14. 【C++】limits头文件 numeric_limits
  15. CREO 用最简单的方法做个莫比乌斯带
  16. RISC-V又一开源SoC-zqh_riscv
  17. 端口映射snmp(端口161)破解网络尖兵
  18. 最全的android图片加密
  19. python TypeError: missing 1 required positional argument:‘self‘
  20. java计算机毕业设计住院工作台系统源程序+mysql+系统+lw文档+远程调试

热门文章

  1. 史上最超级KB的10个故事~你撑到第几个才发抖
  2. 大数据技术之Spark(一)——Spark概述
  3. ubuntu 18.04取消自动锁屏功能
  4. 默林娱乐集团首席执行官首度访华,上海乐高乐园度假区新进展
  5. csdn头像怎么改不了解决方法
  6. ★大塚 愛【LOVE IS BORN】~3rd Anniversary 2006~のライブDVD★
  7. HttpClient数据传输的编码方式
  8. 【YOLACT】测试自己数据集
  9. HLS:矩阵乘法单元设计与SDK测试
  10. 如何解决VS下载速度慢