Series:一维数组

import pandas as pd
ob1=pd.Series([10,20,30,40])
ob1.index   '''访问索引‘’‘
ob1.values   ’‘’访问值'''
ob2=pd.Series([10,20,30,40],index=["a","b","c","d"])   '''指定索引'''ob1.describe()  '''一维数组的描述性统计结果‘’‘ob1.to_dict()   '''一维数组转化为字典形式’‘’

Dataframe:二维的表格型数据结构(可以理解为Series的容器,也就是说,在Dataframe中,多个Series共用了一个索引)

d={"one":pd.Series([10,20,30,40],index=['a','b','c','d']),"two":pd.Series([50,60,70,70],index=["a","b","c","d"])}
df=pd.DataFrame(d)
df


Pandas输出设置:pd.set_option
具体参数参考:https://blog.csdn.net/weixin_34223655/article/details/93524107

import pandas as pd
pd.set_option("display.max_rows",1000)
pd.set_option("display.max_columns",20)
pd.set_option("precision",7)
pd.set_option("large_repr","truncate")

Pandas数据读取与写入:
(1)读取


f=open("E://《Python与量化投资-从理论到实战》 代码//chapter3//closeprice.csv")
a=pd.read_csv(f,encoding='utf-8',dtype={'ticket':str})
a


(2)写入:可使用to_,将DataFrame写入文件

a.to_excel("E://《Python与量化投资-从理论到实战》 代码//chapter3//closeprice.xls")


数据集的快速描述性统计分析:
data.describe(include=“all”).T 展示全部列的统计结果
data.info 展示数据类型、行列数和所占用的内存

f=open("E://《Python与量化投资-从理论到实战》 代码//chapter3//closeprice.csv")
a=pd.read_csv(f,encoding='utf-8',dtype={'ticket':str})
a.describe().T
a.info

根据已有的列建立新列:利用python的内置函数map函数
map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

b={1:"aa",2:"bb",4:"cc",5:"dd",6:"ff",7:"ee"}
a['newinfo']=a.ticker.map(b)
a


DataFrame按多列排序:可以使用list给出需要排序的列,同时给出是升序还是降序。

import pandas as pd
data=pd.DataFrame({"group":["a","a","a","b","b","b","c"],"name":[4,3,6,7,9,4,3]})
data.sort_values(by=["group","name"],ascending=[False,True],inplace=True)
data


去重:

data=pd.DataFrame({"k1":["one"]*4+["two"]*4,"k2":[3,3,2,2,1,1,4,4]})
data.drop_duplicates()   “”“不加任何参数的去重”“”data.drop_duplicates(subset=["k1"],keep="last")  “”“只要K1重复,Pandas就认为是重复,通过keep函数确认保留哪个”“”data[data.duplicated()]      “”“查看重复的行”“”




删除已有列

f=open("E://《Python与量化投资-从理论到实战》 代码//chapter3//closeprice.csv")
a=pd.read_csv(f,encoding='utf-8',dtype={'ticket':str})
aa.drop(["Unnamed: 0"],axis=1)   """axis=1或者axis="columns"指按照列处理"""


重命名某些列:

a.rename(columns={"Unnamed: 0":"id"})


DataFrame的三种切片方法:loc、iloc、ix
(1)a.loc的第一参数是行标签,第二个参数是列标签,这两个参数既可以是列表,也可以是单个字符。如果这两个参数都为列表,则返回DataFrame,否则返回Series。

a.loc[:,["ticker","tradeDate"]]   “”“  :表示所有行”“”


(2)iloc为integer location的缩写,参数要求同loc

a.iloc[:3,[1,4]]


(3)ix是更广义的切片,它会自动1根据我们给出的索引类型判断是使用位置还是标签进行切片。

a.ix[:4,["ticker","closePrice"]]


条件筛选

a[(a.closePrice>10)&(a.ticker>3)]


连续型变量分组

cutt=pd.cut(a.closePrice,bins=[4,9,10,20,30])


对分组结果进行统计:

pd.value_counts(cutt)

给定各个分组的标签并进行切分:

groupname=["low","M1","M2","high"]
pd.cut(a.closePrice,bins=[4,9,10,20,30],labels=groupname)


Pandas的分组技术:groupby函数(拆分数据-应用函数-汇总计算结果)

f=open("E://《Python与量化投资-从理论到实战》 代码//chapter3//20170930.csv")
df=pd.read_csv(f,dtype={"ticker":str,"holdingTicker":str},encoding="utf-8")
df=df[["ticker","holdingTicker","marketValue","industryName1"]]
df.head()
df[["holdingTicker"]].groupby(df["ticker"]).count().tail()    “”“计算基金的持股数”“”
df[["holdingTicker"]].groupby(df["industryName1"]).count().sort_values("holdingTicker",ascending=False).head()             “”“根据行业分组,计算每个行业对应的股票数量”“”
df[["marketValue"]].groupby(df["ticker"]).sum().sort_values("marketValue",ascending=False).head()    """计算前十大重仓股的市值之和“”“




运用agg()函数可以将自定义函数传入其中:

def t_range(arr):return arr.max()-arr.min()
df[["marketValue"]].groupby(df["ticker"]).agg(t_range).head()


agg()函数也可以传入多个函数:

df[["marketValue"]].groupby(df["ticker"]).agg(["sum","max",t_range]).head()


agg()函数也可以通过不同的列应用到不同的求解函数,下面需要分别对市值及行业应用到不同的统计函数,并输出不同的列的数据,这时可以通过agg自定义函数实现,只需传入以列名为键值的字典:

df[["marketValue","holdingTicker"]].groupby(df["ticker"]).agg({"marketValue":[t_range],"holdingTicker":["count"]}).head()


**apply()函数格式为:apply(func,*args,kwargs)
用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并肩元组或者字典中的参数按照顺序传递给参数(类似C语言中的指针作用)

df.groupby("ticker").apply(lambda x:x[:3]).head(9)

Python基础之Pandas相关推荐

  1. python怎么计算总值_python小白系列Day2—python基础以及pandas基础

    最近恰逢过年期间,聚会太多,还有论文以及笔者年后的实习培训,时隔几天,笔者终于在第一天更文之后,继续写第二篇了. 打算写这个,主要是想记录自己从0到1的过程,欢迎拍砖. part one 思考部分 笔 ...

  2. 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!

    来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...

  3. 【Python基础】Pandas数据可视化原来也这么厉害

    一.可视化概述 在Python中,常见的数据可视化库有3个: matplotlib:最常用的库,可以算作可视化的必备技能库,比较底层,api多,学起来不太容易. seaborn:是建构于matplot ...

  4. 【Python基础】Pandas向量化字符串操作

    一.向量化操作概述 Python内置一系列强大的字符串处理方法,但这些方法只能处理单个字符串,处理一个序列的字符串时,需要用到循环. 那么,有没有办法,不用循环就能同时处理多个字符串呢,pandas的 ...

  5. 【Python基础】Pandas笔记---深入Groupby,它的功能没有你想的这么简单

    点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.上篇文章提到了Groupby,但其中举例的代码有点问题,在提取序列时用到了for循环,效 ...

  6. 【Python基础】Pandas笔记---通过比赛整理出的10条Pandas实用技巧

    点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.最近还在参加某比赛,将pandas对数据预处理的方法进行了总结,以下列出的10条是我觉得 ...

  7. 【Python基础】Pandas笔记---概述与数据结构

    点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.因为最近做实验发现Pandas的数据处理技术忘记了,所以准备系统的概述一下Pandas的 ...

  8. pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害

    一.可视化概述 在Python中,常见的数据可视化库有3个: matplotlib:最常用的库,可以算作可视化的必备技能库,比较底层,api多,学起来不太容易. seaborn:是建构于matplot ...

  9. 【Python基础】pandas中apply与map的异同

    ◆ ◆ ◆  ◆ ◆ 前言 pandas作为数据处理与分析的利器,它的江湖地位非同小可.在我们数据处理与分析过程中,有时候需要对某一列的每一个值都进行处理,这时候推荐大家使用apply或者map. 但 ...

  10. 【Python基础】Pandas参数设置的八个小技巧

    在日常使用pandas的过程中,由于我们所分析的数据表规模.格式上的差异,使得同样的函数或方法作用在不同数据上的效果存在差异. 而pandas有着自己的一套「参数设置系统」,可以帮助我们在遇到不同的数 ...

最新文章

  1. android换肤动画,Android-换肤ThemeSkinning使用
  2. 十、【栈和队列】队列
  3. CVPR 2018论文解读 | 基于域适应弱监督学习的目标检测
  4. CHM格式的帮助文档,打开时乱码
  5. boost::intrusive::list_member_hook用法的测试程序
  6. 字符设备驱动笔记(二)
  7. 解决Golang程序运行时占用内存不断增加的问题
  8. xcode 4,2 for Mac 10.6.8
  9. libevent 源码学习五 —— 事件 event
  10. webstorm 去点右边白线
  11. Qt学习之路系列教程目录
  12. 基于SpringBoot的宠物医院管理系统JAVA MYSQL
  13. 程序员脱离苦海就靠这些绝招了了了。。。
  14. vue+axios上传文件的几种方式及步骤(以上传图片为例)
  15. html 星空效果,HTML5JSstar_动态星空效果
  16. 2019-07-17_The error may involve XXX(包)-Inline The error occurred while setting parameters
  17. 为何webpack风靡全球?三大主流模块打包工具对比
  18. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理)。——C语言
  19. Flash Play 闪玩
  20. Hibernate中的一对多关系映射

热门文章

  1. dedecms基础整理,
  2. python类内部方法调用_python如何调用类中的方法
  3. 取证——硬盘数据恢复
  4. 打开的窗口在任务栏上不显示,任务栏不显示正在运行的任务?
  5. uva 590 dp
  6. 【JavaScript】23_浅拷贝和深拷贝 + 对象的复制 + 数组的常用方法
  7. H3C华三h3c认证考试报名咨询与交流
  8. Android仿网易云音乐中锁屏后在开锁界面插屏功能
  9. AC8257 调试记录
  10. EBS WebADI:简介