文章目录
写在前面:
在刷着视频时突然对某个操作有了想法,表格数据是语数英科学四门的分数和总分,想让语数英三列相加,再比较总分。因为我的数据和视频中的例子不一样,有了这个三列相加的想法,想着要去怎么实现,以为是用自定义函数,发现自定义函数只能针对某列或者某行的,实现不了。之后了解对这些科学计算库的总体需要掌握的概念(增,删,查,改的4种方式),决定这周就写这个内容了。至于怎么实现三列相加,最简单的列列相加运算就可以。
关于笔记,都记在jupyter notebook上面,把前面的部分.md文件导入加进来感觉阅读效果不是很好,因为部分dataframe的显示和网页本身的索引显示可能会使阅读出现歧义,所以本篇大多是以截图方式记录,下次就知道怎么用.md导入了。
注:本篇是 日知录(八):python 人工智能基础和数据分析基础的后续。
一、pandas
1.DataFrame
DataFrame是一个表格型的数据结构,含有一组有序的列,是一个二维结构。DataFrame可以被看做是由Series组成的字典,并且共用一个索引。
1.1生成方式
1.2 读取.csv文件并保存指定列
读取csv文件时,先把.xls 文件另存为.csv,在记事本中打开.csv之后选择字符编码形式’UTF-8’
关于设置UTF-8的图示
# 读取中文表格
import pandas as pd
pd.read_csv("D:/chengxu/jupyter/0727/douban.csv",encoding='gbk')
结果:
正常读取步骤: 文件----显示----修改(删除or 增加)
保存’math’列
pandas读取csv数据时设置index:
这里index_col可以设为列名
后续更改index可以使用df.index =df.iloc[:,“column”].tolist()
或df.set_index(‘column’)
1.3 基本数据操作
1.3.1 索引,查找
一般要求是先列后行
使用.loc//.iloc可以先行后列
组合索引
1.3.2 赋值
1.3.3 排序
DateFrame排序
series 排序
1.4 基本运算
1.4.1 算数运算
1.4.2 逻辑运算
1.4.3 统计运算
1.4.4 累计统计函数
1.4.5自定义运算
2.高级处理
2.1 缺失值处理
包括缺失值的类型,应用replacce实现数据的替换,应用dropna实现缺失值的删除,应用filna 实现缺失值的填充
,应用isnull 判断是否有缺失值NaN…
如何处理NaN
1.判断数据是否为NaN
pd.isnull(df)////pd.notnull(df)
np.any(pd.isnull(grade))///np.all(pd.notnull(grade))
2.处理方式
(1)存在缺失值,并且是np.nan
删除dropna(axis=‘rows’)//替换fillna(value,inplace=True),value替换成的值
(2)不是缺失值NaN,有默认标记的
replace(to_replace,value)替换
2.2 数据离散化
为了简化数据结构,用来减少给定连续属性值的个数
应用cut、qcut实现数据的区间分组
应用get_dummies实现数据的one-hot编码
下图是一种添加新列新行的方法:
下图为增加行的实现方法,更多方法详见pandas删除行删除列,增加行增加列
2.3 合并
应用pd.concat()实现数据的合并 ,比如数据由多张表构成,可将不同的内容合并在一起分析。
2.4 交叉表和透视表
应用crosstab和pivot_table实现交叉表与透视表
下图在导入.csv文件时对索引进行设置
2.5 分组与聚合
上图的错误:DataError: No numeric types to aggregate.
使用.astype()强制转换数据类型
二、科学计算库的总结
总结:增,删,查,改
Python pandas常用函数详解
数据处理常见bug报错整理1
1.matplotlib
2.numpy
对numpy中shape的理解
一维,二维,三维,多维···