Python pandas学习笔记
参考文献:《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学习笔记的更多相关文章
- Python pandas学习总结
本来打算学习pandas模块,并写一个博客记录一下自己的学习,但是不知道怎么了,最近好像有点急功近利,就想把别人的东西复制过来,当心沉下来,自己自觉地将原本写满的pandas学习笔记删除了,这次打算写 ...
- 【转】Pandas学习笔记(一)基本介绍
Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- Python Click 学习笔记(转)
原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python Flask学习笔记之模板
Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...
- Python Flask学习笔记之Hello World
Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...
- Pandas 学习笔记
Pandas 学习笔记 pandas 由两部份组成,分别是 Series 和 DataFrame. Series 可以理解为"一维数组.列表.字典" DataFrame 可以理解为 ...
- 获取字段唯一值工具- -ArcPy和Python案例学习笔记
获取字段唯一值工具- -ArcPy和Python案例学习笔记 目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...
随机推荐
- Python游戏-实现键盘控制功能
要想实现键盘控制作用,就需要给游戏键盘监听事件利用pygame模块的key.get_pressed()方法,来检测按键是否按下 key_press =pygame.key.get_pressed() ...
- freemarker特殊字符输出
期望输出: #{fefefefwewrerwerwrrrre}${fffqqqwwwwwwwwwwwwwwww} 但是以上解析ftl时候会报错!!!!!!!!!!!! 解决办法: 方法1:使用${r& ...
- tensorflow-gpu install check
https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c#file-tensorflow_self_check-py-L16
- SQL Server 2008 阻止保存要求重新创建表的更改
取消[阻止保存要求重新创建表的更改]复选框
- 前段开发 jq ajax数据处理详细讲解。
定义和用法 ajax() 方法通过 HTTP 请求加载远程数据. 常用的ajax结构模板: function indes(){ $.ajax({ url: '', type: "GET&qu ...
- Node.js 创建server服务器
var http=require('http'); //引入http模块 var server=http.createServer(function(req,res){ //创建一个server r ...
- JavaScript—获取当下往后七天的时间
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Shell获取多行输入并输出每行的第3个字符
#!/bin/bash echo "$(cut -c3 /dev/stdin)" 标准输入的文件名是/dev/stdin,如果在cut后面输入了这个参数,那么shell会提示你输入 ...
- JS应用之正则表达式
定义 正则表达式是用于匹配字符串中字符组合的模式. 创建正则表达式 两种方式: 1.new RegExp() let pattern1 = new RegExp('cat'); //第一个参数字符串 ...
- systemverilog:task
1.task declaration 个人喜欢ANSI C格式的声明: task mytask(output int x,input logic y); ...... endtask 注意端口列表的方 ...