Python数据分析易错知识点归纳(五):横向对比
五、横向对比
排序
# 列表
a.sort() # 修改原列表,返回值为None!!!!!这里很容易出错
sorted(a) # 生成新的列表
# 嵌套列表的排序(若是对字典排序,需先用list()转成列表形式)
li = [['A', 90], ['B', 20], ['C', 50]]
# 利用sorted()函数中的key属性重新建立排序规则
li = sorted(li, key=lambda x: x[1], reverse=True)
# numpy
#numpy.sort()函数返回输入数组的排序副本
#numpy.sort(a, axis, kind, order)
#axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
#kind: 默认为'quicksort'(快速排序)
#order: 如果数组包含字段,则是要排序的字段
a = np.array([[3, 7], [9, 1]])
print('原数组:')
print(a)
print('调用sort() 函数:')
print(np.sort(a))
print('按列排序:')
print(np.sort(a, axis=0))
# 注意这两种排序结果的区别
print(sorted([[1,2,3],[0,1,1],[2,0,1]])) # 只看子列表中的第一个元素
'''
[[0, 1, 1], [1, 2, 3], [2, 0, 1]]
'''
print(np.sort([[1,2,3],[0,1,1],[2,0,1]])) # 默认axis=1
'''
[[1 2 3]
[0 1 1]
[0 1 2]]
'''
# Series
se.sort_values(ascending=False, inplace=True) #注意Series排序没有by参数
# dataframe
# 根据值排序
df.sort_values(by='A')
df.sort_values(by='A', ascending=False) # 逆序,默认升序
df.sort_values(by='A', inplace=True) # 改变原df
df.sort_values(by=['A', 'B'])
# 根据index排序
df.sort_index(ascending=False) # 用法与上面基本一致,只是没有by
逆序排序参数
列表:reverse=True
numpy、pandas: ascending=False
字典遍历和dataframe遍历的区别
# 字典遍历
for eachItem in dict1.items():
print(eachItem)
# Series遍历
for index, value in se.iteritems():
print(index) # 索引名
print(value) # 值
# dataframe遍历(分按行遍历和按列遍历)
# 按行遍历
for index, row in df.iterrows():
print(index) # 行名
print(row) # 每一行,为Series
# 按列遍历
for col_name,column in df.iteritems():
print(col_name) # 列名
print(column) # 每一列,为Series
列表和集合删除元素
| remove | pop | del | discard | |
|---|---|---|---|---|
| 列表 | 返回None;若不存在会报错 | 返回删除元素;参数默认为0,表示元素下标,超出会报错 | 例:del member[1] | 无 |
| 集合 | 同上 | 同上 | 无 | 返回None; 若不存在不会报错 |
不同的numpy生成方法形成的行列数量区别
np.ones np.eye np.zeros np.full
pandas删除行、列
df.drop
- 删除行
# 通过行名称删除:
df = df.drop(['1', '2']) # 不指定axis默认为0
df.drop(['1', '3'], inplace=True) # 注意若多行有相同行名,都删除
# 通过行号删除
df.drop(df.index[0], inplace=True) # 删除第1行
df.drop(df.index[0:3], inplace=True) # 删除前3行
df.drop(df.index[[0, 2]], inplace=True) # 删除第1第3行
# 通过过滤条件进行切片(实际应用时一般用)
chooses = df['B'].drop_duplicates().index
df.loc[chooses]
- 删除列
del df['A'] # 删除A列,会就地修改
df = df.drop(['B', 'C'], axis=1) # drop不会就地修改,创建副本返回
df.drop(['B', 'C'], axis=1, inplace=True) # inplace=True会就地修改
过滤空值
numpy 判断空值用np.isnan,其参数可以是数值或Numpy,也可以是DataFrame或Series
a = np.array([np.nan, 1, 2, np.nan, 3, 4, 5])
# ~取补运算符过滤NaN
print('非空过滤数组:')
print(a[~np.isnan(a)])
pandas 判断空值用isnull(),只能作用于DataFrame或Series
df = df[df['one'].isnull()]
df = df[df['one'].notnull()] df = df.dropna() # 删除全部是空值的行
df = df.dropna(subset=['one']) # 删除某一列是空值的行
pd开头的方法
- pd.DataFrame / pd.Series
- pd.set_option
- pd.read_csv / pd.read_excel
- pd.concat
- pd.merge
- pd.qcut
- pd.get_dummies
- pd.pivot_table
- pd.crosstab
prefix/suffixes
- prefix 在pd.get_dummies中使用
- suffixes 在pd.merge中使用
Python数据分析易错知识点归纳(五):横向对比的更多相关文章
- python函数-易错知识点
定义函数: def greet_users(names): #names是形参 """Print a simple greeting to each user in th ...
- JavaScript易错知识点整理
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JavaScript 易错知识点整理
本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...
- JavaScript易错知识点整理[转]
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JS易错知识点
JAVASCRIPT易错知识点整理 前言 本文是学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由 ...
- Java易错知识点(1) - 关于ArrayList移除元素后剩下的元素会立即重排
帮一个网友解答问题时,发现这样一个易错知识点,现总结如下: 1.易错点: ArrayList移除元素后,剩下的元素会立即重排,他的 size() 也会立即减小,在循环过程中容易出错.(拓展:延伸到所有 ...
- JavaScript易错知识点
JavaScript易错知识点整理1.变量作用域上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. 上方的函数作用域中虽然声明并赋值了a,但位于console之下 ...
- Python入门---易错已错易混淆----知识点
1.not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 结果会输出啥? 根据优先级:(not 1) or (0 and 1) or (3 a ...
- [置顶] 单片机C语言易错知识点经验笔记
今天写这一篇文章并不是因为已经想好了一篇文章才写下来,而是我要将这一篇文章作为一个长期的笔记来写,我会一直更新.在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的c语言知识点 ...
- Python的易错点
一.列表和元组的区别 列表是允许修改的,而元组是不能修改的,元组只能实现拼接,形成一个新的元组.两者可以实现相互转换,列表转换成元组使用truple函数,而元组转换成列表使用list函数. 二.Raw ...
随机推荐
- Java学习笔记06
1. 类和对象 1.1 类和对象 客观存在的事物皆为对象,所以我们也常常说万物皆对象. 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型,类是具有相同属性和行为 ...
- MySQL InnoDB Architecture 简要介绍
MySQL InnoDB 存储引擎整体架构图: 一.内存存储结构 1.Buffer Pool buffer pool 是主内存中的一块儿存储区域,用于存储访问的表及索引数据.这样从内存中直接访问获取使 ...
- Python全栈开发工程师 day57 jQuery
二.jQuery样式操作标签样式操作<!DOCTYPE html><html lang="en"><head> <meta charset ...
- js与java对json的操作
JSON呢,是现在大部分,并且主流的传递数据的方式. 今天讲一下javascript的java对json的操作 提到js,当下就有一个比较主流的插件,vue.js,这个插件程序员没用过也都听说过吧, ...
- c语言中的链接属性和存储类型
链接属性 external属性: 不在代码块中的函数和变量在缺省情况下都属于external链接属性. 具有external属性的变量或者函数在其他源文件中无论被包含多少次,都指向同一个实体. #a. ...
- 【JS逆向】【多图+附源码】 2023 python获取某蜂窝 _sn
声明:本文/代码/软件/网站等内容仅供学习交流使用,不涉及任何商业目的或利益.如有侵犯版权或其他问题,请联系作者删除.作者对本文/代码/软件/网站等内容的正确性.完整性.可靠性.安全性等不作任何保证, ...
- HTML中meta标签的那些属性
<meta> 标签是 HTML 中用于描述网页元信息的元素.它位于 <head> 部分,不会显示在页面内容中,但对于浏览器.搜索引擎等具有重要作用.主要作用有:定义文档的字符编 ...
- 文心一言 VS chatgpt (12)-- 算法导论3.1 6~7题
六.证明:一个算法的运行时间为θ(g(n))当且仅当其最坏情况运行时间为O(g(n)),且其最好情况运行时间为Ω(g(n)) . 文心一言: chatgpt: 要证明「一个算法的运行时间为θ(g(n) ...
- 2022-02-21:不含连续1的非负整数。 给定一个正整数 n ,返回范围在 [0, n] 都非负整数中,其二进制表示不包含 连续的 1 的个数。 输入: n = 5 输出: 5 解释: 下面是带
2022-02-21:不含连续1的非负整数. 给定一个正整数 n ,返回范围在 [0, n] 都非负整数中,其二进制表示不包含 连续的 1 的个数. 输入: n = 5 输出: 5 解释: 下面是带有 ...
- 2022-02-03:有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离。 给你一个 2D 网格,其中各个格子内的值要么是 0,要么是
2022-02-03:最佳的碰头地点. 有一队人(两人或以上)想要在一个地方碰面,他们希望能够最小化他们的总行走距离. 给你一个 2D 网格,其中各个格子内的值要么是 0,要么是 1. 1 表示某个人 ...