参考文献:《Python金融大数据分析》

#导入模块
import pandas as pd #生成dataframe
df = pd.DataFrame([10,20,30,40], columns=['numbers'],index=['a','b','c','d'])
print('df:', df) #常用的一些操作
print('df.index:', df.index)
print('df.columns:', df.columns)
print("df.sum():", df.sum()) #以下操作等价
print(df**2)
print(df.apply(lambda x: x**2)) #关于索引的使用
#print("df.ix['a']:", df.ix['a'])
#print("df.ix[['a','c']]:", df.ix[['a','c']])
#print("df.ix[ df.index[[1,3]] ]:", df.ix[ df.index[[1,3]] ])
print("df['numbers']:", df['numbers']) #添加数据
#直接添加一列数据
df['float'] = (1.5, 2.3, 4.5, 6.7)
print('df:', df)
print("df['float']:", df['float'])
#print("df['float'].ix[['a', 'b']]", df['float'].ix[['a', 'b']]) #可以直接取dataframe作为一列,通过index指定对应的行
df['names'] = pd.DataFrame(['tom', 'lucy', 'denny', 'kate'], index=['d', 'c', 'b', 'a'])
print('df:', df)
#如果指定了一个不存在的index,那么默认不添加该记录,只添加已有index的记录,没有指定的index,默认值为NaN
df['names_s'] = pd.DataFrame(['tom', 'lucy', 'denny', 'king'], index=['d', 'c', 'b', 'z'])
print('df:', df) #补充数据,注意使用append方法不直接修改原dataframe
#注意。该方式下索引变更为简单索引,这是一个问题
df1 = df.append({'names':'haha', 'numbers':100, 'float':0.01, 'names_s':'xixi'}, ignore_index=True)
print('df:', df)
print('df1:', df1)
#一个正确提供索引信息的方式
df = df.append( pd.DataFrame( {'names':'haha', 'numbers':100, 'float':0.01, 'names_s':'xixi'}, index=['z',]) )
print('df:', df) #缺漏信息的处理:以原结构的索引为基准,不改变索引数目和名称,join默认添加已经存在的索引,新添加的(即原先不存在的)索引不添加新的索引和值,已存在未指定数值的索引默认值为NaN
df2 = df.join( pd.DataFrame([11,22,33,44,55], index=['a', 'b', 'c', 'd', 'y'], columns=['int']) )
print('df2:', df2)
#实现并集连接:即实现添加新的索引
df = df.join( pd.DataFrame([11,22,33,44,55], index=['a', 'b', 'c', 'd', 'y'], columns=['int']), how='outer' )
print('df:', df) #一些结果
print( "df[['numbers', 'int']].mean():", df[['numbers', 'int']].mean() )
print( "df[['numbers', 'int']].std():", df[['numbers', 'int']].std() )

小括号匹配的问题

import re

#小括号:匹配整个字段,但结果只取括号中匹配的字符串
text = r'http://baidu.com'
p = r'http://(.+?).com'
pat = re.compile(p)
print(pat.findall(text))#结果是['baidu'] text2 = r'matlab.python.ruby.python.c'
p2 = r'matlab.+?.ruby'
pat2 = re.compile(p2)
print(pat2.findall(text2))#结果是['matlab.python.ruby']
p3 = r'matlab(.+?.)ruby'
pat3 = re.compile(p3)
print(pat3.findall(text2))#结果是['.python.'] #如果需要精确匹配括号,通过添加反斜杠\的方式转义
text4 = r'matlab(python)ruby.matlab.python.ruby.c'
p4 = r'matlab(.+?.)ruby'
pat4 = re.compile(p4)
print(pat4.findall(text4))#结果是['(python)', '.python.'] p5 = r'matlab(\(.+?.\))ruby'
pat5 = re.compile(p5)
print(pat5.findall(text4))#结果是['(python)'] #匹配同一文本串中多个子部分内容
text6 = r'target="http://www.baidu.com" is "百度" and target="http://www.sougou.com" is "搜狗"'
p6 = r'target="(.+?)" is "(.+?)"'
pat6 = re.compile(p6)
print(pat6.findall(text6))#结果是[('http://www.baidu.com', '百度'), ('http://www.sougou.com', '搜狗')]

Python pandas学习笔记的更多相关文章

  1. Python pandas学习总结

    本来打算学习pandas模块,并写一个博客记录一下自己的学习,但是不知道怎么了,最近好像有点急功近利,就想把别人的东西复制过来,当心沉下来,自己自觉地将原本写满的pandas学习笔记删除了,这次打算写 ...

  2. 【转】Pandas学习笔记(一)基本介绍

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  3. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  4. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  5. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  6. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  7. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

  8. Pandas 学习笔记

    Pandas 学习笔记 pandas 由两部份组成,分别是 Series 和 DataFrame. Series 可以理解为"一维数组.列表.字典" DataFrame 可以理解为 ...

  9. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

随机推荐

  1. Smart Contracts

    A smart contract is a computer code running on top of a blockchain containing a set of rules under w ...

  2. centos6上安装mysql8.0版本

    本博客是采用yum源的方式安装,非常的方便和快捷.(redhat 与centos7 等操作系统都可以采用此方法,步骤大体一致) mysql官网地址:   https://dev.mysql.com 开 ...

  3. axios添加了header信息后发送的get请求自动编程option请求了

    axios添加了header信息后发送的get请求自动编程option请求了 webpack 代理转发 Provisional headers are shown 在Vue中如何使用axios跨域访问 ...

  4. Vue.js系列之vue-router(上) (转载自向朔1992)

    概述 Vue非常适用于实践单页面应用程序也就是平时大家说的比较多的SPA(single page application),这点应该了解过Vue的应该都知道吧.一般的单页面应用是基于路由或页面之间的链 ...

  5. JAVA基础——网络编程之网络链接

    一.网络编程基本概念 1.OSI与TCP/IP体系模型 2.IP和端口 解决了文章最开始提到的定位的问题. IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证):网络编程是和远程计算 ...

  6. 纯css实现同一页面下选择之后更换内容效果

    实现效果为如下:在同一页面下,当我选中输入手机号时,出现手机号输入框,当我选中输入验证码时,出现验证码输入框,当我选中设置密码时,出现密码框 在这里有一个小技巧,就是  1.对下面的输入框设置同样的样 ...

  7. GC 机制

    1. 为什么需要垃圾回收? 因为内存是有限的,在不断的分配内存空间而不回收的话内存迟早都会被消耗完,所以垃圾回收是必须的. 2. 触发GC 的条件: 1.GC在优先级最低的线程中运行,一般在应用程序空 ...

  8. [JOYOI] 1415 西瓜种植

    题目描述 笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的-- 笨笨在一番研究过后,得出了m个结论,这m个结论可以使他收获的西瓜最多. 笨笨的结论是这样的: 从西瓜地B处到E处至少要种植T个西瓜 ...

  9. Java后端技术微信交流群!工作、学习、技术、资源等!期待你的加入!

    <Java后端技术>专注Java相关技术:SSM.Spring全家桶.微服务.MySQL.MyCat.集群.分布式.中间件.Linux.网络.多线程,偶尔讲点运维Jenkins.Nexus ...

  10. sorted倒序

    ''' sorted 可以排列list, reverse=True 可以倒序排列 ''' # # def list_Dict(x): # m = {} # for k,v in enumerate(x ...