利用Python进行数据分析
学习足迹记录
海边凝望
这个作者很懒,什么都没留下…
展开
-
14.4 usda食品数据库
1、对JSON数据进行规整、读取2、将所有食物的营养成分整合到一个大表中:首先数据转换成DataFrame,并添加一个表示编号的列;然后将该DataFrame添加到一个列表中,最后通过concat将这些东西连接起来...原创 2019-07-20 15:33:09 · 1035 阅读 · 0 评论 -
14.3 1880-2010年间全美婴儿姓名
1、这是非常标准的逗号隔开的文件,使用pandas.read_csv读取2、年度出生率3、原创 2019-07-20 15:06:27 · 266 阅读 · 0 评论 -
14.2 movielens
1、数据集是6000名用户对4000部电影的100万条 评论,是dat格式文件,可以通过pandas.read_table将各表分别读到一个pandas DataFrame对象中2、将三个表数据合并到一个表中,先用pandas的merge函数合并两个,再跟另一个合并3、按性别计算每部电影的平均得分,使用pivot_table4、过滤掉不足某个数的电影,先对title(电影名...原创 2019-07-20 14:38:28 · 336 阅读 · 0 评论 -
14.1 来自Bitly的USA.gov的数据(2)
1、用pandas对时区进行计数2、取出前10个时区并计数3、先将缺失数据填充,再可视化这个数据;fillna对缺失数据进行填充、seaborn对数据进行可视化4、按Windows和非Windows用户对时区数据进行分解先移除缺失值再根据a值计算各行是否含有Windows值对数据进行分组,用size计数...原创 2019-07-20 12:47:09 · 437 阅读 · 0 评论 -
第14章 14.1 来自Bitly的USA.gov数据(1)
1、数据是每小时更新一次,格式是JSON形式,下面是只读取文件中的第一行2、可以使用Python内置或第三方模块将json字符串转换成Python字典对象3、用纯Python代码对时区进行计数,采样的计数办法是在遍历时区的过程中将计数值保存在字典中...原创 2019-07-20 11:48:20 · 168 阅读 · 0 评论 -
13.3 statsmodels介绍
1、statsmodels是拟合统计模型、进行统计试验和数据探索可视化的库,但没有贝叶斯方法和机器学习模型2、有两种接口:基于数组和基于公式;可以通过api模块引入fit方法返回一个回归结果对象...原创 2019-07-20 00:31:39 · 1368 阅读 · 0 评论 -
13.2 用Patsy创建模型
1、patsy适合描述statsmodels的线性模型,其公式是一个特殊的字符串语法,表示为模型设计矩阵2、patsy.dmatrices函数接收一个公式字符串和一个数据集,为线性模型设计矩阵3、Pasty对象可以直接传递到算法,如下面的最小二乘回归4、在Pasty公式中使用非数值数据,会默认转变为 虚变量...原创 2019-07-19 23:41:35 · 912 阅读 · 0 评论 -
第13章 13.1pandas与模型代码的接口
1、模型开发的通常工作流是使用pandas进行数据加载和清洗,然后切换到建模库进行建模2、开发模型 重要的一节是特征工程,特征工程描述的是从原始数据集中提取信息的任何数据转换或分析3、使用.values将DataFrame转换为Numpy;反转的转换使用ndarray4、若使用列的子集,可使用values作索引,然后使用loc操作...原创 2019-07-19 22:59:47 · 79 阅读 · 0 评论 -
12.2 链式编程技术
1、DataFrame.assign方法是一个df[k]=v形式的函数式的列分配方法,它不是就地修改对象,而是返回新的修改过的DataFrame2、管道方法-pipe使用自己 的函数或第三方库时会用到管道方法...原创 2019-07-19 22:13:04 · 85 阅读 · 0 评论 -
第12章 12.1 分类数据
1、将分类数据进行one-hot编码,使用pandas方法的get_dummies函数原创 2019-07-19 21:34:09 · 96 阅读 · 0 评论 -
11.7 移动窗口函数
1、在移动窗口上计算的各种统计函数称为移动窗口函数原创 2019-07-19 06:45:19 · 289 阅读 · 0 评论 -
11.6 重采样及频率转换
1、重采样指的是将时间序列从一个频率转换到另一个频率的过程;将高频率数据聚合成低频率数据成为降采样;将低频率数据转换成高频率数据成为升采样;降采样:使用pandas对象的一个resample方法可以分组数据然后调用一个聚合函数通过求和的方式将这些数据聚合到5分钟内2、金融领域数据中一种时间序列聚合方式是使用ohlc,一次可以获得第一个值,最后一个值、最大值及最小值3、升采样不需...原创 2019-07-19 06:41:12 · 767 阅读 · 0 评论 -
11.5 时期及其算术运算
1、时期表示的是时间区间。Period类表示的就是这种数据类型。2、period_range可以创建规则的时期范围3、时期的频率转换,使用asfreq4、按季度计算的时间频率5、不同列中的数据可以传入PeriodIndex,可以合并并生成DataFrame的一个索引...原创 2019-07-19 06:24:06 · 114 阅读 · 0 评论 -
11.4 时区处理
1、时区时间是以UTC偏移量表示的,时区信息来自第三方库pytz,通过这个库可以调用Olson数据库(汇编了世界时区信息)2、从pytz中获取时区对象,使用pytz.timezone3、从单纯到本地化的转换通过tz_localize,本地化到某个特定时区后可以使用tz_convert将其转换到别的时区4、操作时区意识型Timestamp对象独立的Timestamp对象也能从单纯...原创 2019-07-19 06:05:12 · 224 阅读 · 0 评论 -
11.3 日期的范围、频率以及移动
1、生成日期范围使用pandas.date_range根据指定的频率生成时间序列;默认固定频率是填只有开始日期或只有结尾日期的,需指定长度也可以指定每月最后一个工作日、每周的第几个星期等2、频率和日期偏移量在基础频率前加上一个整数即代表倍数...原创 2019-07-17 06:52:24 · 160 阅读 · 0 评论 -
11.2 时间序列基础
1、 最基本的时间序列类型是以时间戳为索引的Series2、不同索引的时间序列间可进行算术运算 ,t[::2]每隔两个取一个3、较长的序列可以进行切片,部分切片、按年切片或按月 切片等都可以运算4、带有重复索引的时间序列5、通过is_unique检查是否唯一,对重复的时间序列进行索引,重复的产生切片,不重复的产生标量值6、对有重复的数据集进行聚合,需使用grou...原创 2019-07-17 06:33:17 · 279 阅读 · 0 评论 -
第 11章 11.1 日期和时间数据类型及工具
1、datatime以毫秒形式存储日期2、字符串和datetime的相互转换 str及strftime将日期转换成字符串形式字符串转换成日期3、可以使用dateutil.parser简便转换格式...原创 2019-07-17 00:12:41 · 96 阅读 · 0 评论 -
10.3 apply:一般性的拆分-应用-合并
1、最通用的Groupby方法是apply2、使用group_keys = False禁止分组键3、分位数和 桶分析 使用cut将数据集f装入长度相同的桶中4、用特定 值填充缺失值 使用平均值填充null值时,使用fillna...原创 2019-07-16 23:31:46 · 163 阅读 · 0 评论 -
10.2 数据聚合
1、除了系统自带的聚合函数外,也可以使用自定义的函数,将定义的函数传入aggregate或agg,自定义函数运行时会比系统自带函数慢,需先进行groupby,再调用agg2、可以对不同的列使用不同的聚合函数,调用的函数通过将 函数名以字符串形式传入agg,进行调用,如mean3、如果传入的是一组函数或函数名得到的DataFrame的列就会以相应函数命名,需要注意的是peak是自...原创 2019-07-16 21:40:27 · 291 阅读 · 0 评论 -
第10章 10.1 GroupBy机制
1、数据分析中一般 经历拆分、应用、合并2、按照分组键进行分组,再按照某列进行应用,产生一个新Series3、一次传入多个数组的列表,得到的Series具有层次化索引...原创 2019-07-16 20:20:19 · 171 阅读 · 0 评论 -
9.2 使用pandas和seaborn绘图
1、seaborn是另一个图形库2、pandas和seaborn默认情况下生成的是线型图3、plot.bar()和plot.barh()分别绘制水平和垂直的柱状图4、plot.hist绘制直方图,plot/kde绘制密度图5、factorplot绘制多种分面图...原创 2019-07-14 19:24:29 · 216 阅读 · 0 评论 -
第九章 9.1 matplotlib API入门
1、matplotlib 的引入约定是:import matplotlib.pyplot as plt2、可以使用figure的subplots控制生成图形的属性3、带有标记的线性示例图4、legend(图例)是另一种用于表示图标元素的工具5、text可以添加文本6、在图形中添加图表,需要创建一个块对象shp,然后通过ax.add_patch(shp)将其添加...原创 2019-07-14 19:14:34 · 95 阅读 · 0 评论 -
第8章 层次化索引
1、层次化索引可以通过低纬度形式处理高纬度数据2、8.2 合并数据集1、pandas.merge可根据一个或多个键将不同DataFrame中的行连接2、pandas.concat可以沿一条轴将多个对象堆叠到一起3、combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象中的缺失值4、5、使用left_index = True或r...原创 2019-07-14 18:14:16 · 319 阅读 · 0 评论 -
7.3 字符串操作
1、字符串操作:逗号分隔符使用split,去除空白符及换行符使用strip2、count返回指定子串出现的次数3、正则表达式提供了一种灵活在文本中搜索 或匹配字符串模式的方式,常称作regex4、描述一个或多个空白符的regex是\s+5、如果 对许多字符串应用 同一条正则表达式,建议使用re.compile创建regex对象,以备重复使用6、match 匹配字符串首...原创 2019-07-14 17:08:52 · 109 阅读 · 0 评论 -
7.2 数据转换
1、使用duplicated判断重复行,返回Series;dop_duplicates返回DataFrame类型2、可以指定行进行判断3、map修改对象的数据子集,replace是更为简单的替换4、为了便于分析,经常将连续数据离散化或拆分为面元数据5、需要使用的是pandas的cut函数,圆括号表示开端、方括号表示闭端将年龄分为18到25、26到35、36到60及60以...原创 2019-07-14 16:21:23 · 161 阅读 · 0 评论 -
第七章 7.1 处理缺失数据
1、pandas使用NaN表示缺失数据,也称为哨兵值2、用isNull判断是否有缺失值3、当对数据进行清洗分析时,最好对缺失数据进行分析,判断缺失值对整个数据的影响4、Series中过滤空值:使用dropna过滤掉一个仅含非空数据和索引值的Series,下面两种写法是等价的5、DataFrame中过滤空值:dropna默认丢掉任何含有缺失值的行,使用how = 'all'过...原创 2019-07-14 14:45:38 · 148 阅读 · 0 评论 -
第6章 数据加载、存储与文件格式
1、pandas.read_csv读取带分隔符的文件2、to_csv将数据写到一个逗号分隔的文件中3、json.dumps将python对象转换成json格式。pandas.read_json将json对象转换成Series或者DataFrame4、处理不同类的数据,pandas大都有对应的函数进行处理,真正处理数据时可以先查询,简化代码量...原创 2019-07-14 11:26:55 · 77 阅读 · 0 评论 -
5.3 汇总和计算描述统计
1、Series中describe一次返回多个汇总类型2、Series中corr计算;两个Series中重叠、非空、按索引对齐的值的相关系数,cov计算协方差3、values_counts计算各值出现的频率,并以降序方式返回...原创 2019-07-14 10:44:51 · 73 阅读 · 0 评论 -
5.2 基本功能
利用标签的切片与普通的切片不同,有标签的包含尾部 没有明确标签名称时,会自动补全标签 pandas 可以将不同类型的索引对象进行计算,结果的索引就是该索引对的并集5、二维数组和某行或者某列的算术运算,是一种广播形式,即 全部行或者列与某行或者某列的计算6、排序DataFrame时有sort_index、sort_values、sort_values(by = )7...原创 2019-07-14 10:30:19 · 61 阅读 · 0 评论 -
第5章 5.1 pandas的数据结构介绍
1、pandas偏向于处理表格和混杂数据,numpy适合处理统一的数值数组数据2、series由一组数据和相关的标签组成,与一维数组的不同就是可以通过索引即标签形式访问Series引用时是大写的"S",左边是索引,右边是值,索引也可以自己指定3、DataFrame是一个表格型数据结构,含有一组有序的列,列可以是不同的值类型4、pandas是二维形式5、最简单的创建panda...原创 2019-07-12 22:49:07 · 96 阅读 · 0 评论 -
4.6 伪随机数生成
1、生成标准 正态分布二、4.7 示例:随机漫步1、随机漫步:从0开始,步长1和-1出现的概率相等2、内置random模块的纯Python实现1000步随机漫步3、首次穿越时间:随机漫步过程中第一次到达某个特定值的时间4、随机漫步需要多久才能距离初始0点至少10步远,是第一个10或者-10np.abs(walk)>=10表示距离符合,argmax表...原创 2019-07-12 07:05:33 · 120 阅读 · 0 评论 -
4.5 线性代数
1、矩阵乘法使用dot函数2、一个方括号代表一维数组形式,两个代表二维数组3、一个二维数组和一个合适的一维数组相乘,得到一个一维数组原创 2019-07-12 06:12:05 · 115 阅读 · 0 评论 -
4.4 用于数组的文件输入输出
1、np.save和np.load是读写磁盘数组数据的函数。保存的数据末尾会自动加上.npy2、保存的文件是未压缩形式3、原创 2019-07-12 05:58:19 · 87 阅读 · 0 评论 -
4.3 利用数组进行数据处理
1、用数组表达式代替简单循环的方式通常被称为矢量化2、矢量化运算比等价的Python方式快一两个数量级3、np.where是三元表达式x if condition else y的矢量化版本4、...原创 2019-07-12 05:50:43 · 69 阅读 · 0 评论 -
第四章 4.2 通用数组
1、通用函数(ufunc)可以看成是简单函数的矢量化包装器,像sqrt,exp等2、原创 2019-07-12 04:43:59 · 78 阅读 · 0 评论 -
第四章 4.1 numpy数组(2)
1、numpy的切片是视图形式,而不是复制;会将改变的数值反映在原数组中2、可以使用啊a[1:3].copy()进行复制3、下标从0开始4、选取数组中特定的值5、切片中只有冒号表示选取整个轴,索引和切片同时使用,可以简化代码量6、花式索引总是将数据复制到新的数组中...原创 2019-07-12 04:36:34 · 77 阅读 · 0 评论 -
第四章 4.1 Numpy的ndarray
1、numpy是处理数值计算的重要包2、ndarray 是一种多维数组对象,书中所称的numpy数组及ndarray都是ndarray3、使用array函数创建数组,会将传入的数据转换成数组形式,且会为选择一个较为合适的数据类型4、要导入的是numpy模块,而不是Numpy5、zeros和ones及empty函数是特殊的创建数组的 方法6、类型转换使用ast...转载 2019-07-12 04:05:01 · 92 阅读 · 0 评论 -
第三章 3.3 文件和操作系统
1、虽然可以使用pandas工具操作文件,但也可以直接对文件进行操作2、使用open函数打开文件(默认是只读,可自己定义),文件后必须关闭文件操作close函数,释放操作系统资源3、文件写入write或writelines4、read从文件返回字符,seek将文件位置更改为文件中指定字节,tell给出当前位置...原创 2019-07-11 06:39:41 · 79 阅读 · 0 评论 -
第三章 3.2 函数
1、函数 用def关键字声明、用return关键字返回值2、一个函数中可以有多个return,但若一个没有,则默认返回None3、函数模块可以返回多个值,也可以返回字典4、匿名函数(lambda函数),是说明正在声明一个匿名函数,使用匿名函数减少了编写完整函数的多余代码5、柯里化是使用新函数定义现有的函数6、5的形式可以使用内置函数实现7、异常处理 try/exce...原创 2019-07-11 06:16:18 · 56 阅读 · 0 评论 -
第三章 3.1 数据结构和序列(3)
1、zip函数将序列组合成一个元祖列表,元素的个数取决于最短的序列2、字典也称为数据映射或关联数组,由键值对形式组成,大小可变,键值唯一,以大括号形式出现,键值之间用冒号分隔3、集合是无序、 不重复,可以使用集合去重4、集合的表示有两种方式:set函数及大括号set语句5、集合的合并是去除同类项后的相加,使用union方法或者|运算符6、取两个集合的交集使...原创 2019-07-10 22:52:05 · 90 阅读 · 0 评论