0
点赞
收藏
分享

微信扫一扫

用于OOD预测的稳定学习

像小强一样活着 2023-05-15 阅读 55

文章目录

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 绘画功能,随查随用。

一、引言

二、网络安全与隐私保护的挑战

网络攻击和数据泄露的危害影响包括但不限于以下几点:

互联网公司的数据采集和隐私售卖风险如下:

三、保护网络隐私的方法与策略

四、结论

举报

相关推荐

0 条评论