随笔分类 - 数据分析学习笔记
此笔记为业余时间学习数据分析笔记
摘要:数据清洗和准备 离散化和面元划分 6 8 9 4 > 2 3 4 1 # 得到每个数据间的相对大小 # 离散化的思想:就是数据太大,我们没办法开那么大的数组,数字个数又不多,这个时候就可以使用离散化, # 离散化只是改变这个数字的相对大小,并没有改变这个数字的绝对大小 # 面元划分:可以理解成分阶段
阅读全文
摘要:通用函数 一元函数: 函数 描述 np.abs 绝对值 np.sqrt 开根 np.square 平方 np.exp 计算指数(e^x) np.log,np.log10,np.log2,np.log1p 求以e为底,以10为低,以2为低,以(1+x)为底的对数 np.sign 将数组中的值标签化,大
阅读全文
摘要:Axis理解 之前的课程中,为了方便大家理解,我们说axis=0代表的是行,axis=1代表的是列。但其实不是这么简单理解的。这里我们专门用一节来解释一下这个axis轴的概念。 简单来说, 最外面的括号代表着 axis=0,依次往里的括号对应的 axis 的计数就依次加 1。什么意思呢?下面再来解释
阅读全文
摘要:np.random模块 np.random为我们提供了许多获取随机数的函数。这里统一来学习一下。 np.random.seed: 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed()值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因
阅读全文
摘要:NAN和INF值处理 首先我们要知道这两个英文单词代表的什么意思: NAN:Not A number,不是一个数字的意思,但是他是属于浮点类型的,所以想要进行数据操作的时候需要注意他的类型。 INF:Infinity,代表的是无穷大的意思,也是属于浮点类型。np.inf表示正无穷大,-np.inf表
阅读全文
摘要:文件操作 操作CSV文件: 文件保存: 有时候我们有了一个数组,需要保存到文件中,那么可以使用np.savetxt来实现。相关的函数描述如下: np.savetxt(frame, array, fmt='%.18e', delimiter=None) * frame : 文件、字符串或产生器,可以是
阅读全文
摘要:深拷贝和浅拷贝 在操作数组的时候,它们的数据有时候拷贝进一个新的数组,有时候又不是。这经常是初学者感到困惑。下面有三种情况: 不拷贝: 如果只是简单的赋值,那么不会进行拷贝。示例代码如下: a = np.arange(12) b = a #这种情况不会进行拷贝 print(b is a) #返回Tr
阅读全文
摘要:Numpy数组操作 数组广播机制: 数组与数的计算: 在Python列表中,想要对列表中所有的元素都加一个数,要么采用map函数,要么循环整个列表进行操作。但是NumPy中的数组可以直接在数组上进行操作。示例代码如下: import numpy as np a1 = np.random.random
阅读全文
摘要:数据清洗和准备 二、数据转换 移除重复数据 data = pd.DataFrame({'k1':['one','two']*3+['two'], 'k2':[1,1,2,3,3,4,4]}) data Out: k1 k2 0 one 1 1 two 1 2 one 2 3 two 3 4 one
阅读全文
摘要:数据清洗和准备 一、处理缺失数据 data1 = pd.Series(['a','b',np.nan,'d']) data1 Out: 0 a 1 b 2 NaN 3 d dtype: object data1.isnull() Out: 0 False 1 False 2 True 3 False
阅读全文
摘要:数据聚合与分组 什么是分组聚合?如图: groupby:(by=None,as_index=True) by:根据什么进行分组,用于确定groupby的组 as_index:对于聚合输出,返回以组便签为索引的对象,仅对DataFrame df1 = pd.DataFrame({'fruit':['a
阅读全文
摘要:数据清洗 一、数据清洗和准备 数据清洗是数据分析关键的一步,直接影响之后的处理工作 数据需要修改吗?有什么需要修改的吗?数据应该怎么调整才能适用于接下来的分析和挖掘? 是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作 1. 处理缺失数据: pd.fillna() pd.dropna()
阅读全文
摘要:数据读取与存储 csv文件 1、读取csv文件read_csv(file_path or buf,usecols,encoding):file_path:文件路径,usecols:指定读取的列名,encoding:编码 data = pd.read_csv('d:/test_data/food_ra
阅读全文
摘要:Pandas统计计算和描述 arr1 = np.random.rand(4,3) pd1 = pd.DataFrame(arr1,columns=list('ABC'),index=list('abcd')) f = lambda x: '%.2f'% x pd2 = pd1.applymap(f)
阅读全文
摘要:层级索引(hierarchical indexing) 下面创建一个Series, 在输入索引Index时,输入了由两个子list组成的list,第一个子list是外层索引,第二个list是内层索引。 import pandas as pd import numpy as np ser_obj =
阅读全文
摘要:Pandas的函数应用 apply 和 applymap 1、可直接使用Numpy的函数 # Numpy ufunc 函数 df = pd.DataFrame(np.random.randn(5,4) - 1) print(df) print(np.abs(df)) 运行结果: 0 1 2 3 0
阅读全文
摘要:Pandas的对齐运算 1、算术运算和数据对齐 1、Series 的对齐运算 s1 = pd.Series(np.arange(4),index=['a','b','c','d']) s2 = pd.Series(np.arange(5),index=['a','c','e','f','g']) s
阅读全文
摘要:高级索引 1、loc 标签索引 2、iloc 位置索引 3、ix 标签与位置混合索引 1、loc 标签索引 # Series ps1 Out: a 888 b 1 c 2 d 3 e 4 dtype: int64 # loc 标签索引 # loc 是标签名的索引,自定义的索引名 ps1['a':'c
阅读全文
摘要:Pandas的索引操作 1、Series和DataFrame中的索引都是Index对象 import numpy as np import pandas as pd ps1 = pd.Series(range(5),index=['a','b','c','d','e']) type(ps.index
阅读全文
摘要:DataFrame的基本用法 1、T转置 # dataframe pd5 = pd.DataFrame(np.arange(9).reshape(3,3),index=['a','b','c'],columns=['A','B','C']) pd5 A B C a 0 1 2 b 3 4 5 c 6
阅读全文