Capturing Life & Tech
pandas对象中的数据可通过内置方式合并:
数据集的合并(merge)和连接(join)是通过键将行连接起来的。
1 | df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'], |
两边都有的列就都有数据,一边有列一边的数据,没有就用缺省值NaN填充。
DataFrame的连接键位于索引上;传入left_index=True或right_index=True(或两者)指定。
1 | left1 = DataFrame({'key': ['a', 'b', 'c', 'a', 'b', 'a'], |
对于像这样的东西,了解一下,知道有这么个东西,以后用到能想到,查一下;
现在第一次看没必要看得这么深,也很难懂,看不懂还影响了心情。
1 | arr = np.arange(12).reshape((3, 4)) |
NumPy的where函数,实现合并两个有重叠部分数据集;Series的combine_first方法实现同样的功能,且数据对齐。
重新排列表格型数据的基础运算,谓之重塑(reshape)或轴向旋转运算(pivot)。
1 | data = DataFrame({'k1':['one']*3 + ['two']*4, |
了解到有这么个知识点可以完成那些功能,将来遇到要实现的时候能回忆起来就可以了。
Series的map方法可接受一个函数或含有映射关系的自典型对象。
1 | ## 肉类 |
replace提供了简单灵活的替换方式。
1 | data = Series([1.,-999.,2.,-999.,-1000.,3.]) |
1.连接符
join连接列表或元祖
1 | # print piece |
2.子串定位in关键字
1 | # print 'guido' in val |
3.count计算子串出现的次数
1 | val.conut(',') |
re模块函数可分三大类:模式匹配
替换以及拆分。
1 | import re |
清理散乱数据,字符串规整化工作。
data.map,所有字符串和正则表达式方法都能被应用于(传入lambda表达式或其他函数)各个值,但如果存在NA就会报错。通过Series的str属性即可访问这些方法。如str.contains检查是否含”gmail”.
1 | data.str.contains('gmail') |
1 | import json |
为了实现一个订单下多个商品同时评价功能,列表分五种状态(非常满意,满意,一般,较差,不满意)展示,用一个listview,item中有一个GridView,GridView中放置最多五张图片;在listview上下滑动时会出现item中的图片重复、错乱、闪烁等问题。
先讲我的错误。遇到问题后Google,参考了一些资料,都是提示要在外层listview的adapter上设置setTag(), 然后在内层GridView的adapter上整体和需要标记复用的imageView上setTag()。照此执行了,还是出错;后来在同事指点下,原来外层adapter中设置gridAdapter时只是在没有塞值时gridView.setVisibility(View.GONE),忘了要在有值的时候gridView.setVisibility(View.VISIBLE), 所以导致在复用的时候,没有了GridView可复用。
输入输出分类:
pandas提供了将表格数据读取为DataFrame对象的函数;其中read_csv和read_table是应用最多的两个:
| 函数 | 说明 |
|---|---|
| read_csv | 从文件、URL、文件型对象中加载带分隔符的数据;默认逗号 |
| read_table | 从文件、URL、文件型对象中加载带分隔符的数据;默认制表符”\t” |
类型推断是这些函数中最重要的功能之一。
1 | $ cat ex1.csv |
对于没有标题行的文件
1 | $ cat ex2.csv |
指定索引
1 | # 指定索引 |
1 | # 非固定分隔符,需要正则表达式 |
跳过异常行(使用参数skiprows)
1 | $ cat ch06/ex4.csv |
可以认为1,3,4行为异常数据
1 | print pd.read_csv('../pydata-book-master/ch06/ex4.csv', skiprows=[0,2,3]) |
大文件只想读取一小部分或者逐块对文件进行迭代
1 | result = pd.read_csv('../pydata-book-master/ch06/ex6.csv', nrows=5) |
逐块读取;用到chunksize(行数)
1 | # chunker = pd.read_csv('../pydata-book-master/ch06/ex6.csv', chunksize=100) |
1 | data = pd.read_csv('../pydata-book-master/ch06/ex5.csv') |
pandas.read_csv生成的是DataFrame对象;
DataFrame的to_csv方法,可以将数据写到一个用逗号分隔的文件中
1 | data.to_csv('./ch06_out.csv') |
将缺失值替换为其他标记值
1 | data.to_csv(sys.stdout, na_rep='NULL') |
只输出特定列,指定顺序
1 | data.to_csv(sys.stdout, index=False, columns=['a', 'b', 'c']) |
Series也有to_csv()方法
1 | datas = pd.date_range('1/1/2000', periods=7) |
更简单的读取方法from_csv
1 | # print Series.from_csv('./ch06tsseries.csv', parse_dates=True) |
场景:pandas.read_table加载表格数据时,由于畸形行导致错误
1 | # $ cat ch06/ex7.csv |
手动写入分隔符文件csv.writer
1 | with open('mydata.csv', 'w') as fw: |
tip:一些东西还是要看源码才最直接
JSON已成为HTTP请求在Web浏览器和其他程序之间发送数据的标准格式之一、
1 | obj1 = """ |
1 | # http://finance.yahoo.com/quote/AAPL/options?ltr=1 |
1 | from lxml import objectify |
1 | # 保存到磁盘上 |
1 | xls_file = pd.ExcelFile('../pydata-book-master/ch06/ex1.xlsx') |
1 | import requests |
1 | # 数据库选择标准:性能、数据完整性、应用程序的伸缩性需求 |
1 | # 电脑上需要装MongoDB数据库; |
走过了一遍第六章,给我的感觉是,工具很强大,可以做很多数据分析工作,数据结构知识还是匮乏,一些比较复杂的东西还是不能很好的理解,需要加强,多看几遍也是一个方法。
时间上,下班时间有点晚,可以看书的时间都在9点左右,有点晚,太累了,以后下班是不是可以早一点,做饭时间吃饭时间太晚;另外严重缺乏锻炼了,涨了一些肉的,膝盖还是没有恢复,需要针对性锻炼。
记一下,博客的评论插件,多说社会化评论系统已经关闭;选择移除多说或者换成其他的。
………………………………………………2017-03-25 22:57 Sat&合肥-皖水公寓
Tip:全称Numerical Python,是高性能科学计算和数据分析的基础包。本书所有高级工具的构建基础。
对于大部分数据分析应用,作者关注功能:
Tip:动手敲一敲,跟所有由键盘驱动的控制台环境一样,锻炼对常用命令的肌肉记忆是学习曲线中不可或缺的一部分。
?,就能查看对象的一些信息这一章介绍了IPython的强大功能,作为数据分析利器的存在。目前我还是用PyCharm这个IDE顺手。这一章暂且搁置,若后续需要了解再来查看。–20170307
1 | import this |
今日感悟:在项目开发过程中,一些坑现在不填平,以后还会跳出来坑你,还是往死里坑。这也正是
Errors should never pass silently.的意指。so,不要逃避困难,遇到问题,想办法解决。
题记:这本书是2016年6月10日购于Aamazon,至今还是新的,有愧初衷。决定于2017年2月25日开始看,本书共12章,400页(不含附录)。计划两个月看完。那么,到3月25日要看200页,大概到第七章结束;四周200页,一周就是50页。
那么就从附录的基础开始看吧。
时间计划表:
| 周序号 | 时间 | 章节 | 页码 | 执行情况 |
|---|---|---|---|---|
| 1 | 20170227-20170305 | 第一、二章 | p1-p47 | 完成 |
| 2 | 20170306-20170312 | 第三、四章 | p48-p112 | 完成 |
| 3 | 20170313-20170319 | 第五章 | p115-p161 | 完成 |
| 4 | 20170320-20170325 | 第六章 | p162-p185 | 完成 |
| 5 | 20170326-201704 | 第七章 | p186-p230 | - |
| 6 | 20170305-20170305 | - | - | - |
| 7 | 20170305-20170305 | - | - | - |
| 8 | 20170305-20170305 | - | - | - |
| 9 | 20170305-20170305 | - | - | - |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true