首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python代码实操:详解数据清洗

() 方法来查找含有至少1个或全部缺失值的列,其中 any() 方法用来返回指定轴中的任何元素为 True,而 all() 方法用来返回指定轴的所有元素都为 True。...': 1.1, 'col4': 1.2}) # 用不同值替换不同列的缺失值 nan_result_pd6 = df.fillna(df.mean()['col2':'col4']) # 用各自列的平均数替换缺失值...删除数据记录中所有列值相同的记录,index为2的记录行被删除: col1 col2 0 a 3 1 b 2 3 c 2 删除数据记录中col1值相同的记录...,index为2的记录行被删除: col1 col2 0 a 3 1 b 2 3 c 2 删除数据记录中col2值相同的记录,index为2和3的记录行被删除...: col1 col2 0 a 3 1 b 2 删除数据记录中指定列(col1和col2)值相同的记录,index为2的记录行被删除: col1 col2 0

5K20

Pandas速查卡-Python数据科学

) 从一列返回一组对象的值 df.groupby([col1,col2]) 从多列返回一组对象的值 df.groupby(col1)[col2] 返回col2中的值的平均值,按col1中的值分组(平均值可以用统计部分中的几乎任何函数替换...(col1).agg(np.mean) 查找每个唯一col1组的所有列的平均值 data.apply(np.mean) 在每个列上应用函数 data.apply(np.max,axis=1) 在每行上应用一个函数...) df1.join(df2,on=col1,how='inner') SQL类型的将df1中的列与df2上的列连接,其中col的行具有相同的值。...df.describe() 数值列的汇总统计信息 df.mean() 返回所有列的平均值 df.corr() 查找数据框中的列之间的相关性 df.count() 计算每个数据框的列中的非空值的数量 df.max...() 查找每个列中的最大值 df.min() 查找每列中的最小值 df.median() 查找每列的中值 df.std() 查找每个列的标准差 点击“阅读原文”下载此速查卡的打印版本 END.

9.2K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从数据页和B+树的角度看索引失效原因

    图中我们存储了一些主键记录为【1-9】的记录,淡绿色方块是recordtype的类型值,这里记录了在什么类型的数据页值分别是多少,紫色方块next_record,绿色方块是主键记录和最大最小记录。...在B+树上是有序的,我们通过二分法查找可以定位到 col1 = 'a'的位置,在col1确定的情况下,col2是相对col1有序,同样能能利用二分法定位到 col2= 'bb'的位置,所以上面的查询语句中两个字段都可以利用上索引...执行查询: sql1:select * from test_index where col2= 'bb' sql2:select * from test_index where col1 >'a' and...col2 = 'bb' sql1中col2顺序的前提是col1也是顺序的,如果col1不能确定的话,那么无法利用二分法在无序的列上利用索引进行查询。...sql2中col1因为有序的能利用二分法找到a,但是因为col2有序的前提是col1的值确定,但是 col1 > a ,col1的值可能是b、c、d等,所以col1可以利用到索引,而col2是用不到的。

    658150

    pandas技巧4

    返回字段为col1和col2的前5条数据,可以理解为loc和iloc的结合体。...df.at[5,"col1"] # 选择索引名称为5,字段名称为col1的数据 df.iat[5,0] # 选择索引排序为5,字段排序为0的数据 data.str.contains("s") # 数据中含有...col1进行分组,计算col2的最大值和col3的最大值、最小值的数据透视表 df.groupby(col1).agg(np.mean) # 返回按列col1分组的所有列的均值,支持df.groupby...df1.join(df2.set_index(col1),on=col1,how='inner') # 对df1的列和df2的列执行SQL形式的join,默认按照索引来进行合并,如果df1和df2有共同字段时...df.count() # 返回每一列中的非空值的个数 df.max() # 返回每一列的最大值 df.min() # 返回每一列的最小值 df.median() # 返回每一列的中位数 pd.date_range

    3.4K20

    Pandas进阶修炼120题|当Pandas遇上NumPy

    答案 df = pd.concat([df1,df2,df3],axis=1,ignore_index=True) df 87 数据查看 题目:查看df所有数据的最小值、25%分位数、中位数、75%分位数...、最大值 难度:⭐⭐ 答案 print(np.percentile(df, q=[0, 25, 50, 75, 100])) 88 数据修改 题目:修改列名为col1,col2,col3 难度:⭐ 答案...df.columns = ['col1','col2','col3'] 89 数据提取 题目:提取第一列中不在第二列出现的数字 难度:⭐⭐⭐ 答案 df['col1'][~df['col1'].isin...题目:提取第一列位置在1,10,15的数字 难度:⭐⭐ 答案 df['col1'].take([1,10,15]) 95 数据查找 题目:查找第一列的局部最大值位置 难度:⭐⭐⭐⭐ 备注 即比它前一个与后一个数字的都大的数字...答案 np.convolve(df['col2'], np.ones(3)/3, mode='valid') 98 数据修改 题目:将数据按照第三列值的大小升序排列 难度:⭐⭐ 答案 df.sort_values

    99320

    【Mark一下】46个常用 Pandas 方法速查表

    In: print(data2.shape) Out: (3,3)形状为元组类型isnull查看每个值是否为空值In: print(data2.isnull()) Out: col1 col2...例如可以从dtype的返回值中仅获取类型为bool的列。 3 数据切片和切块 数据切片和切块是使用不同的列或索引切分数据,实现从数据中获取特定子集的方式。...col3 0 2 a True 1 1 b True 2 0 a False选择col2中值为a或col3值为True的记录使用isin查找范围基于特定值的范围的数据查找...b True筛选col1列值为1或2的记录query按照类似sql的规则筛选数据In: print(data2.query('col2=="b"')) Out: col1 col2 col3...1.0 Name: col1, dtype: int64以col2列为索引建立数据透视表,默认计算方式为求均值 8 高级函数使用 Pandas能直接实现数据框级别高级函数的应用,而不用写循环遍历每条记录甚至每个值后做计算

    4.9K20

    妈妈再也不用担心我忘记pandas操作了

    () # 返回每一列的最小值 df.median() # 返回每一列的中位数 df.std() # 返回每一列的标准差 数据合并: df1.append(df2) # 将df2中的行添加到df1的尾部...df.concat([df1, df2],axis=1) # 将df2中的列添加到df1的尾部 df1.join(df2,on=col1,how='inner') # 对df1的列和df2的列执行SQL...形式的join 数据清理: df[df[col] > 0.5] # 选择col列的值大于0.5的行 df.sort_values(col1) # 按照列col1排序数据,默认升序排列 df.sort_values...对象 df.groupby(col1)[col2] # 返回按列col1进行分组后,列col2的均值 df.pivot_table(index=col1, values=[col2,col3], aggfunc...=max) # 创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表 df.groupby(col1).agg(np.mean) # 返回按列col1分组的所有列的均值 data.apply

    2.2K31

    玩转数据处理120题|Pandas版本

    Python解法 df.columns = ['col1','col2','col3'] 89 数据提取 题目:提取第一列中不在第二列出现的数字 难度:⭐⭐⭐ Python解法 df['col1'][~...df['col1'].isin(df['col2'])] 90 数据提取 题目:提取第一列和第二列出现频率最高的三个数字 难度:⭐⭐⭐ Python解法 temp = df['col1'].append...'] % 5==0) 92 数据计算 题目:计算第一列数字前一个与后一个的差值 难度:⭐⭐ Python解法 df['col1'].diff().tolist() 93 数据处理 题目:将col1,col2...([1,10,15]) # 等价于 df.iloc[[1,10,15],0] 95 数据查找 题目:查找第一列的局部最大值位置 难度:⭐⭐⭐⭐ 备注 即比它前一个与后一个数字的都大的数字 Python解法...题目:查找secondType与thirdType值相等的行号 难度:⭐⭐ Python解法 np.where(df.secondType == df.thirdType) 112 数据查找 题目:查找薪资大于平均薪资的第三个数据

    7.6K41

    SQL进阶-2-自连接

    SQL进阶-2-自连接 SQL通常在不同的表之间进行连接运算,但是也可以在相同的表中进行运算。macOS中连接数据库: mysql -u root -p -- 后续输入密码 ?...基于单个字段 假设我们想通过name字段(只根据一个字段)来查找重复行,可以使用如下语句: select name, price, count(*) -- 分组之后统计每个组的行数 from Products...1; -- 过滤 笔记:根据具有相同值的字段分组,然后只显示大小大于1的组 基于多个字段 有时候会基于多个字段查找重复行 SELECT col1, COUNT(col1), col2...FROM table_name GROUP BY col1, col2, ......SQL实现 查找是同一家人,但是住址不同的记录 自连接和非等值连接的结合 select distinct A1.name, A1.address from Address A1, Address A2

    1.2K30

    mysql复合索引、普通索引总结

    如果查询为: Select col1, col2, col3 from table1 order by col1 ASC, col2 ASC, col3 ASC 排序结果和索引完全不同时,此时的查询不会被复合索引优化...之后用得到的索引去取值。 1. 如果存在一个多列索引,任何最左面的索引前缀能被优化器使用。所以联合索引的顺序不同,影响索引的选择,尽量将值少的放在前面。...如:一个多列索引为 (col1 ,col2, col3) 那么在索引在列 (col1) 、(col1 col2) 、(col1 col2 col3) 的搜索会有作用。...Sql代码 收藏代码 SELECT * FROM tb WHERE col1 = val1 SELECT * FROM tb WHERE col1 = val1 and col2 = val2...如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。

    2.8K20

    谈谈唯一约束和唯一索引的关系_唯一约束和主键约束的一个区别是

    唯一约束 保证在一个字段或者一组字段里的数据都与表中其它行的对应数据不同。和主键约束不同,唯一约束允许为 NULL,只是只能有一行。 唯一索引 不允许具有索引值相同的行,从而禁止重复的索引或键值。...首先创建两个字段值一样的表 t1,t2,并为 t1 表中的 col1 列设置唯一约束。...col1); 运行结果 创建表 t3,并将 t1 表中的 col1 列设置为 t3 表中 col2 列的外键 CREATE TABLE t3 ( col1 INT(11), col2 INT(11),...col1 列设置为 t4 表中 col2 列的外键 CREATE TABLE t4 ( col1 INT(11), col2 INT(11), col3 VARCHAR(20), CONSTRAINT...t1 为 col1 列建立了唯一约束,表 t2 为 col1 列建立了唯一索引,但是表 t3 和 t4 也被成功建立了,可见最终的结果还是一样,也即没有证明上面那个回答。

    1.7K20

    Mysql执行计划(大章)

    Mysql的执行计划 执行计划是啥? 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理你的SQL语句的。...,id的序号会递增,id值越大优先级越高,越先被执行 l  id相同不同:同时存在 分别举例来看  Id相同 ?...本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体 ?...哪些列或常量被用于查找索引列上的值 ?...,col1匹配t2表的col1,col2匹配了一个常量,即 'ac' 其中 【shared.t2.col1】 为 【数据库.表.列】   Rows 根据表统计信息及索引选用情况,大致估算出找到所需的记录所需要读取的行数

    76021

    和面试官聊了半小时的MySQL索引!

    但是跟普通的查找有所不同,因为我们的数据有以下特征: 存储的数据是非常非常多的 并且还不断的动态变化 所以实现索引时需要考虑到这两个特点。我们需要找一个最合适的数据结构算法来实现查找功能。...特点跟单列索引一样,不同之处在于他的排序,如果第一个字段相同时会按第二个索引字段排序 如何通过B-tree快速查找数据?...col1为主键索引的聚簇索引树 索引列是主键 col1 可以看出叶子节点除了存储索引值 列col1 (3994700)值 之外还存储了其他列的值,如列col2 (92813),如果还有别的列的话也会存储...下图是非聚簇索引(二级索引)的数据组织方式。 索引列是 col2 与聚簇索引不同的是非聚簇索引在索引树叶子节点上除了索引值之外只存了主键值。而聚簇索引则存了一行数据。...假如有一条sql 语句 : select * from test where col2=93; 上面这条语句会经历两次从索引树查找过程: 1.第一步从非聚簇索引的索引树上找到包含col2=93的叶子节点

    58120

    你确定真正理解联合索引和最左前缀原则?

    latin1占用一个字节,gbk占用2个字节,utf8占用3个字节,utf8mb4占用4个字节(不同字符编码占用的存储空间不同) 字符类型-索引字段为char类型+不可为Null时 char(n)=n...而要想实现这种查找,索引却是有要求的,要实现这种能快速查找的算法,索引就要特定的数据结构。简单说,也就是索引字段的数据必须是有序的,才能实现这种类型的查找,才能利用到索引。...建一个联合索引(col1,col2,col3),实际相当于建了(col1),(col1,col2),(col1,col2,col3)三个索引。每多一个索引,都会增加写操作的开销和磁盘空间的开销。...对联合索引(col1,col2,col3),如果有如下的sql: select col1,col2,col3 from test where col1=1 and col2=2。...有1000W条数据的表,有如下sql:select from table where col1=1 and col2=2 and col3=3,假设假设每个条件可以筛选出10%的数据,如果只有单值索引,

    80681

    图解 MySQL 索引,写得实在太好了!

    但是跟普通的查找有所不同,因为我们的数据有一下特征: 1.存储的数据是非常非常多的 2.并且还不断的动态变化 所以实现索引时需要考虑到这两个特点。我们需要找一个最合适的数据结构算法来实现查找功能。...特点跟单列索引一样,不同之处在于他的排序,如果第一个字段相同时会按第二个索引字段排序。 如何通过B-tree快速查找数据? ?...可以看出叶子结点除了存储索引值 列col1 (3994700)值 之外还存储了其他列的值,如列col2 (92813),如果还有别的列的话也会存储,或者换句话说聚簇索引树 在叶子节点上存储某个索引值对应的一行数据...下图是非聚簇索引(二级索引)的数据组织方式。 索引列是 col2 ? 与聚簇索引不同的是非聚簇索引在索引树叶子节点上除了索引值之外只存了主键值。而聚簇索引则存了一行数据。...假如有一条sql 语句 select * from test where col2=93; 上面这条语句会经历两次从索引树查找过程 1.第一步从非聚簇索引的索引树上找到包含col2=93的叶子节点,并定位到行的主键

    1K20

    Pandas进阶修炼120题,给你深度和广度的船新体验

    Part 1 Pandas基础 1.将下面的字典创建为DataFrame data = {"grammer":["Python","C","Java","GO",np.nan,"SQL","PHP","...、25%分位数、中位数、75%分位数、最大值 print(np.percentile(df, q=[0, 25, 50, 75, 100])) 88.修改列名为col1,col2,col3 df.columns...= ['col1','col2','col3'] 89.提取第一列中不在第二列出现的数字 df['col1'][~df['col1'].isin(df['col2'])] 90.提取第一列和第二列出现频率最高的三个数字...df['col1'] % 5==0) 92.计算第一列数字前一个与后一个的差值 df['col1'].diff().tolist() 93.将col1,col2,clo3三列顺序颠倒 df.ix[:..., ::-1] 94.提取第一列位置在1,10,15的数字 df['col1'].take([1,10,15]) # 等价于 df.iloc[[1,10,15],0] 95.查找第一列的局部最大值位置

    6.2K31
    领券