文章目录
8.2、pandas
8.2.1、为什么用 pandas ?
pandas 是基于 numpy 数组构建的,
但二者最大的不同是 pandas 是专门为处理表格和混杂数据设计的,比较契合统计分析中的表结构,而 numpy 更适合处理统一的数值数组数据。pandas数组结构有一维 Series 和二维 DataFrame 。
8.2.2、pandas Series 类型
可以将 Series 类型看作一维数组,
字典类型转为 Series 类型/pandas 一维数组,更适合科学计算
怎么得到和 numpy.array 类似的矩阵?
8.2.3、pandas 自定义索引
怎么用?
怎么取值?
结论:
Series()
可传入的参数与返回对象索引的关系:
Series()
传入列表,得到的对象,有默认索引,可自定义;
Series()
传入字典【key:value】,得到的对象,key为索引。
怎么选取特定的键值对,并返回 obj【Series对象】?
8.2.4、pandas 如何判断数据缺失?
以 obj 对象为例,判断是否有缺失值:
pd.notnull(obj)
pd.isnull(obj)
8.2.5、pandas DataFrame 类型
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不用的类型,数值、字符串、布尔值都可以
DataFrame 本身也有行索引,列索引,字典转 DataFrame 再转置表格才一致。
为什么 DataFrame 可以理解成 Series 组成的字典 ?
DataFrame 的数据源可以是字典,Series,也可以是 DataFrame,还可以是 numpy 数组。
8.2.6、pandas 筛选
以 res 对象为例,
data = {
"60年代":[1,2,3],
"70年代":[4,5,6],
"80年代":[7,8,9],
}
df = DataFrame(data)
1)行、列筛选
2)头部筛选
例如,取前两行
df.head(2)
3)尾部筛选
例如,取后两行
df.tail(3)
8.2.7、pandas 重新索引
reindex 函数,就是重新定义索引。
举个例子:
重新定义索引时,如何填充缺失值/NaN?
是否可以反复重新定义索引?
8.2.8、pandas 算数运算和数据对齐
加法(add),举个例子
加法补充:
减法(sub)、乘法(mul)、除法(div)
8.2.9、pandas 排序
举几个例子:
8.2.10、pandas 层次索引
在一个轴上拥有多个索引级别,低维度形式处理高维度数据。
怎么理解低维度形式处理高维度数据?
通过几个维度定义成一个“新维度”,实现减少维度数量。
筛选
能保证层次索引的唯一性吗?
给层次索引的这个层,定义名字:
给层定义名字的意义?
利用层做计算
仍以上述 data 为例:
列-第1层 👉 col-1 col-2 col-3
列-第2层 👉 ccl-11 col-22 col-33
行-第1层 行-第2层
👇 👇
A a 0.570352 0.880968 0.149804
b 0.191035 0.381349 0.440291
B a 0.252567 0.214825 0.434361
b 0.121341 0.462958 0.369168
依据 行-第1层
进行求和,
print(data.groupby(level='行-第1层').sum())
Out:
列-第1层 col-1 col-2 col-3
列-第2层 ccl-11 col-22 col-33
行-第1层
A 0.58706 0.875382 0.258519
B 1.26823 1.486146 1.127393
(求和结果由于是随机数求和,求和结果就不细究了)
8.2.11、 pandas 文本格式数据处理
就是处理csv文件,涉及到索引的使用。
以 demo.CSV 为例,
CSV文件中空的单元格显示什么?
读取处理 CSV文件,excel文件有无性能差异?
df = pd.read_excel('data.xlsx')
df = pd.read_csv('data.CSV')
博客文章上的解释:
pandas读取excel文件时如果要将内容转为数组需要使用values属性值,而读取csv时生成的直接就是一个数组。
因此,CSV 文件更快。
pandas 还可以读取 json,db 文件
df = pd.read_json('data.json')
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table', conn)
通过前面几个例子,很明显有这么几个默认:
①在读取 CSV文件/excel文件都是默认第一行是索引。
②pandas CSV文件处理方法中谈到的索引默认指的是列索引【不是绝对的,Dataframe 有些方法既 有index、又有 columns 时,index 表示行】。
③读取的表格会默认添加行索引,且默认用012345…填充。
8.2.12、pandas 画图
pandas 内部集成了一部分 matplotlib 绘画功能,随查随用。
一、引言
二、网络安全与隐私保护的挑战
网络攻击和数据泄露的危害影响包括但不限于以下几点:
互联网公司的数据采集和隐私售卖风险如下: