Pandas介绍

导入pandas库

import pandas as pd

读取CSV文件

df = pd.read_csv('file_name')  #注意文件路径

读取前几条数据

df.head(num)  #num默认值是5,可以自己指定

返回当前文件的信息

df.info()
df.index
df.columns
df.dtypes
df.values

注意:Pandas的处理对象是DataFrame结构

创建一个dataframe结构

data = {‘name’:['wemo', 'azhu', 'john'],'age':[23, 18, 30]}
df_data = pd.DataFrame(data)

取指定的数据

age = df['Age']
age[:5] #取出前五个年龄的值

指定索引读取数据

df = df.set_index('Name')
df.head()

得到数据的基本统计特性

df.describle()

pandas索引

df[['Age','Fare']][:5]

iloc和loc的不同了:loc是根据dataframe的具体标签选取列,而iloc是根据标签所在的位置,从0开始计数

df.iloc[0:5, 1:3]
df.set_index('Name').loc['wemo, azhu', 'Fare']

bool类型的索引

df['Fare'] > 40  #返回的是True or False
df[ df['Fare'] > 40] #通过bool类型索引返回票价大于40的数据
(df.['Age'] > 70).sum() #统计年龄大于70的人数

groupby操作

import pandas as pd
df = pd.DataFrame({'key':['A', 'B', 'C', 'A', 'B', 'C'], 'data':[0, 5, 10, 5, 10, 15, 10, 15, 20]})
#进行分类统计操作
for key in ['A', 'B', 'C']:
print(df[df['key']==key].sum())
#下面通过groupby来实现上面代码的功能
df.groupby('key').sum(()

groupby的应用

df.groupby('Sex')['Age'].mean()  #统计男女性别的年龄平均数

数值运算

进行数值计算的操作
import pandas as pd
df = pd.DataFrame([[1,2,3],[4,5,6]],index = ['a','b'],columns = ['A','B','C'])
df.sum() #默认按照第0维度计算
df.sum(axis = 1)
df.sum(axis = 'columns')
df.mean(axis = 1)
df.min()
df.max()
df.median() #进行中位数计算
df.cov() #协方差
df.corr() #相关系数
df['Age'].value_counts() #统计某特征的值的分布
df['Age'].value_counts(ascending = True,bins = 5) #升序排列,bins表示平均分成五个区间

对象操作

Series结构的增删改查

Series 是一维带标签的数组,它可以包含任何数据类型。包括整数,字符串,浮点数,Python 对象等。Series 可以通过标签来定位。

定义一个Series结构

data = [10,11,12]
index = ['a','b','c']
s = pd.Series(data = data,index = index)

Series结构的查操作

s[0]  #通过位置来查询,类似于numpy
mask = [True,False,True]
s[mask] #通过布尔类型查询
s.loc['b'] #通过标签查询,区别于numpy的地方
s.iloc[1] #通过位置查询

Series结构的改操作

s1['a'] = 100  #通过对标签赋值
s1.replace(to_replace = 100,value = 101,inplace = True) #inplace为True表示改变s1的值,默认为false不改变原series的值(需要进行赋值操作)
s1.index = ['a','b','d'] #改变标签
s1.rename(index = {'a':'A'},inplace = True) #改变一个标签的值

Series结构的增操作

data = [100,110]
index = ['h','k']
s2 = pd.Series(data = data,index = index)
s3 = s1.append(s2) #直接append一组数据进来
#
s3['j'] = 500 #类似于字典添加键值对的操作
#
s1.append(s2,ignore_index = True) #ignore_index表示是否重新创建索引(0-n),默认ignore_index = False

Series结构的删操作

del s1['A']  #类似字典操作
s1.drop(['b','d'],inplace = True)

DataFrame结构的增删改查

DataFrame 是二维的带标签的数据结构。我们可以通过标签来定位数据。

定义一个DataFrame结构

data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['A','B','C']
df = pd.DataFrame(data=data,index=index,columns = columns)

查操作

df['A']
df.iloc[0]
df.loc['a']

改操作

df.loc['a']['A'] = 150

增操作

df.loc['c'] = [1,2,3]
df3 = pd.concat([df,df2],axis = 0)

删操作

df5.drop(['j'],axis=0,inplace = True)

merge函数的操作

res = pd.merge(left, right, on = ['key1', 'key2'],  on='key',how = 'outer', indicator = True)
left:为DataFrame结构的对象,表示合并后位于左边
right:为DataFrame结构的对象,表示合并后位于左边
on:表示以什么为基准合并
how:默认以交集的方式合并,outer指明以并集方式合并。还有可以以right/left为基准合并
indicator:在合并后DataFrame结构中显示数据的来源
result = left.join(right, on='key') #还有一个合并操作join,需要时细查文档

数据显示设置

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html?highlight=set_option#pandas.set_option

pd.set_option('display.max_rows',6)
pd.set_option('display.precision',5)

数据透视表

数据透视表:可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据

df.pivot_table(index = 'Sex',columns='Pclass',values='Fare',aggfunc='max')
Pclass 1 2 3
Sex
female 512.3292 65.0 69.55
male 512.3292 73.5 69.55
aggfunc默认是求平均值,也可以是计数count、求最大值max

时间序列的操作

import datetime
dt = datetime.datetime(year=2018,month=4,day=23,hour=10,minute=30)
print (dt) #普通的时间操作
output:2018-04-23 10:30:00 #Pandas对时间序列的操作
import pandas as pd
ts = pd.Timestamp('2017-11-24') #通过Timestamp是一种方式
pd.to_datatime('2017-11-24')

数据分析库Pandas的更多相关文章

  1. Python数据分析库pandas基本操作

    Python数据分析库pandas基本操作2017年02月20日 17:09:06 birdlove1987 阅读数:22631 标签: python 数据分析 pandas 更多 个人分类: Pyt ...

  2. 教程 | 一文入门Python数据分析库Pandas

    首先要给那些不熟悉 Pandas 的人简单介绍一下,Pandas 是 Python 生态系统中最流行的数据分析库.它能够完成许多任务,包括: 读/写不同格式的数据 选择数据的子集 跨行/列计算 寻找并 ...

  3. python数据分析库pandas

    在我看来,对于Numpy以及Matplotlib,Pandas可以帮助创建一个非常牢固的用于数据挖掘与分析的基础.而Scipy(会在接下来的帖子中提及)当然是另一个主要的也十分出色的科学计算库,但是我 ...

  4. 预备知识-python核心用法常用数据分析库(上)

    1.预备知识-python核心用法常用数据分析库(上) 目录 1.预备知识-python核心用法常用数据分析库(上) 概述 实验环境 任务一:环境安装与配置 [实验目标] [实验步骤] 任务二:Pan ...

  5. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...

  6. Python 金融数据分析库及相关框架

    BackTest框架库: PyAlgoTrade ZipLine 金融数据分析库: pandas

  7. 在量化金融中15个最流行的Python数据分析库

    Python是当今应用最广泛的编程语言之一,以其效率和代码可读性著称.作为一个科学数据的编程语言,Python介于R和java之间,前者主要集中在数据分析和可视化,而后者主要应用于大型应用.这种灵活性 ...

  8. Python 数据处理库pandas教程(最后附上pandas_datareader使用实例)

    0 简单介绍 pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有 ...

  9. Python数据分析之Pandas操作大全

    从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设 ...

随机推荐

  1. linux磁盘管理(RHEL)

    IDE硬盘名称格式为/dev/hdXY,其中X为a-z的小写字母,Y为数字1-4(一块硬盘最多能分4个主分区).如hda1,表示第一块硬盘的第一个分区.hdb3表示第二块硬盘的第三个分区.还有如Pri ...

  2. 2018.10.15 bzoj3564: [SHOI2014]信号增幅仪(坐标处理+最小圆覆盖)

    传送门 省选考最小圆覆盖? 亦可赛艇(你们什么都没看见) 在大佬的引领下成功做了出来. 就是旋转坐标使椭圆的横轴跟xxx轴平行. 然后压缩横坐标使得其变成一个圆. 然后跑最小覆盖圆就可以了. 注意题目 ...

  3. 2018.08.16 POJ1183反正切函数的应用(简单数学)

    传送门 代数变形一波. 显然有b,c>a. 那么这样的话可以令b=a+m,c=a+n. 又有a=(bc-1)/(b+c). 带入展开可知m*n=a*a+1. 要让m+n最小只需让m最大,这个结论 ...

  4. 48 Fixing relationship Problems with Humor 用幽默解决人际关系问题

    48 Fixing relationship Problems with Humor 用幽默解决人际关系问题 ①We've all heard that laughter is the best me ...

  5. 对call() apply() 方法的简单理解

    真的是非常简单的理解,我知道的并不多,在网上查找了很多的资料,还是只能了解一点皮毛,下面来整理出来,方便以后深入的去学习,也是对目前知道的知识点的巩固. 整理一些网上的经典解答: 1.一句话区分cal ...

  6. CentOS7查看网络的相关命令

    转载自:https://www.linuxidc.com/Linux/2015-07/119555.htm 1.切换到超级用户 [Oscar@localhost 桌面]$ su root 2.查询可用 ...

  7. MySQL终端下常用命令

    一:控制类命令 1.show variables like "%datadir%";显示注册在variables中(一个注册表key-value的格式存储数据)key能匹配%dat ...

  8. Python中的replace方法

    replace 方法:返回根据正则表达式进行文字替换后的字符串的复制. stringObj.replace(rgExp, replaceText) 参数 stringObj必选项.要执行该替换的 St ...

  9. [Linux-vi] The simple set of vi command

    Source : https://www.cs.colostate.edu/helpdocs/vi.html What is vi? The default editor that comes wit ...

  10. Android Studio生成get,set,tostring,构造方法

    如何在AndroidStudio开发Android应用程序的时候,在对象模型中生成快捷方式生成get,set,tostring,构造方法等: 有两种方式: 第一种方式:Code –> Gener ...