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. 报告视频录制:腾讯会议录屏+人像画中画特效
  2. C# 将数据写入DataGridView 中并显示
  3. 5G 信令流程 — MM 定时器
  4. git 连接到远程的其它分支问题
  5. 渗透工具开发——XSS平台的命令行实现
  6. Microsoft Dynamic CRM 2013安装
  7. java icache_Java ICacheWordSubscriber類代碼示例
  8. 【数据结构与算法】之栈与队列的应用和操作
  9. 中set无效是怎么回事_一起认识下,那些我们应该知道的mysql中的变量知识点
  10. Spark PersistenceEngine持久化引擎与领导选举代理机制内核原理深入剖析-Spark商业环境实战...
  11. 一家企业为何使用多家公司的防火墙
  12. synchronized原理_synchronized 底层原理与内存屏障
  13. 启动虚拟机报错VMware Workstation cannot connect to the virtual machine
  14. ionic3 修改打包时 android sdk 路径
  15. [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis
  16. 分布式事务解决方案之2PC(两阶段提交)介绍
  17. SQL插入数据时让ID从指定值自增
  18. 软考《软件设计师教程》(第五版)
  19. 【笔记】C#学习笔记
  20. 翼城中学2021高考成绩查询入口,山西省临汾市翼城中学2020-2021学年高一下学期期中考试物理试题 Word版含答案(11页)-原创力文档...

热门文章

  1. Google搜索风云榜
  2. 【MIKE HYDRO】某河道MIKE HYDRO水质水动力模拟项目-水动力模型构建
  3. 如何简单快速将PDF转换为PPT格式
  4. 标准USB设备请求命令
  5. 西门子S7-200 ppi协议解析
  6. iMeta | 德国国家肿瘤中心顾祖光发表复杂热图(ComplexHeatmap)可视化方法
  7. _nop_在c语言里什么作用,单片机c语言中nop函数的使用方法和延时计算
  8. 薪酬管理系统的作用是什么?
  9. 视频教程-用友U8视频教程全集(全模块)-ERP
  10. 手机怎么给电脑传送文件,电脑怎么给手机传送文件?