数据分析三剑客学习总结
作者:互联网
Numpy
- 数组的创建
- np.array(data = 列表)
- plt.imread(图片地址)
- np.ones()全部为1
- np.linspace()创建等差数列,一维数组
- np.arange()创建等差数列,一维数组
- np.random.randint()创建任意维度的数组
- 常用属性
- shape 返回数组的形状
- ndim 返回数组的维度
- size 返回数组元素的个数
- dtype 返回元素的数据类型
- 修改数组的数据类型
- arr.dtype = 赋值
- astype(数据类型)
- numpy数组主要存储数值型的数据
- int, float
- 索引
- 索引取行:arr[行索引]
- 索引取列:arr[:,列索引]
- 索引取元素: arr[行索引:列索引]
- 切片:与pandas不同
- 切行:arr[行切片(xx:xx)]
- 切列:arr[:, 列切片]
- 级联:concatenate
- 将多个numpy进行横向或者纵向的拼接(需要根据需要保证列数或者行数相等) -> 与pandas不同
- 变形:reshape
- reshape()需要保证元素个数相等
- 基于切片反转图片
- arr[::-1, ::-1]
- 基于切片反转图片
- 聚合函数
- max, min, mean, min
- 统计函数
- std 标准差
- var 方差
- 矩阵
- 转置:T
- 矩阵乘法
Pandas
- 两个常用的类
- Series, DataFrame
- Series(一维的数据结构)
- 创建形式:
- Series(data=list)
- Series(data=np.array())
- Series(data=dic)
- isnull(), notnull() 检测Series是否为空或者是否为非空
- unique() 对元素去重
- nunique() 统计去重后的元素个数
- Series 运算法则
- 如果两个Series之间进行算术运算, 则可以对索引一直的元素进行运算,否则为空
- Series的显示索引,可以通过设置index设置其显示索引,不会覆盖隐式索引
- 创建形式:
- DataFrame(二维的数据结构)
- 创建方式:
- DataFrame(data=二维列表)
- DataFrame(data=二维的numpy数组)
- DataFrame(data=字典)
- 显式索引: 通过设置index,columns设置其行和列的显式索引
- 索引操作:
- DataFrame[‘列索引’] 索引取列
- DataFrame[[‘c1’, ‘c2’]] 索引取多列
- DataFrame.iloc[‘行索引’] 索引取行
- DataFrame.iloc[[i1, i2]] 索引取多行
- iloc[隐式索引]
- loc[显式索引]
- DataFrame.iloc[行索引, 列索引]
- 切片操作:
- 切行:DataFrame[行切片(xx:xx)]
- 切列:DataFrame.iloc[:, 列切片(xx:xx)]
- 时间类型的转换
- pd.to_datetime(DataFrame[‘data’])
- 将列转化为行索引
- set_index(df[‘col’])
- DataFrame持久化存储
- DataFrame.to_xxx()
- DataFrame的数据加载
- pd.read_xxx()
- 指定数据的删除:
- drop() 注意axis与正常的情况相反
- 将Series的元素整体的上移或者下移:
- shift(x)
- 可以将布尔值作为数据的行索引
- 数据的重新取样: resample(‘M’).first() 可以取月份最后或者第一天
- rolling(5).mean() 5日均值
- sort_index() 根据索引排序
- sort_value() 根据值排序
- DataFrame的级联: concat()
- 匹配级联和不匹配级联
- DataFrame的合并: merge() 需要一列共同的值合并,有left_on,right_on
- how:inner(为了防止数据丢失通常不用), outer, left, right
- DataFrame 运算法则同Series
- DataFrame的条件查询query() 比索引取行查询方便的多,可在后边编写条件,取出符合条件的行
- DataFrame的替换操作: replace()
- 单值替换
- 多值替换
- 指定列替换
- 映射: map(只能用到Series中后便跟字典形式的映射表)
- Series运算工具:map(func)
- 随机抽样
- take():打乱DataFrame的行和列
- random.randint(n) 随机乱序数列
- apply 是DataFrame的运算工具,对DataFrame的行或者列进行运算
- applymap 是对DataFrame中的每一个元素进行运算
- 数据清洗
- 缺失值
- any, all, dropna, fillna
- 重复值
- drop_duplicates(keep)
- 异常值
- 基于异常值判定条件返回的布尔值取出索引去除异常值得操作
- 缺失值
- 分组操作
- groupby(by=‘xx’)
- 分组聚合
- agg([‘xx’, ‘cc’])分组后实现多种操作
- 高级聚合
- 自定义分组后的聚合函数
- apply(func), transform(func)
- 透视表(pivot_table) 用法比较困难
- 参数:
- index
- value
- aggfunc
- columns
- 参数:
- 创建方式:
Matplotlib
- 线形图:plt.plot()
- 柱状图:plt.bar()
- 直方图:plt.hist()
- 饼图: plt.pie()
- 散点图: plt.scatter()
axis轴向:
- 在drop, dropna, take中axis=0表示行,axis=1表示列
- 在其他函数中,axis=0是列, axis=1是行
标签:数据分析,总结,arr,Series,DataFrame,索引,xx,data,三剑客 来源: https://blog.csdn.net/ZYM66/article/details/123166379