参考资料:https://mp.weixin.qq.com/s/9z3JVBkZpasC_F0ar_7JJA

删除多列:df.drop(col_names_list, axis=1, inplace=True)

转换数据类型:df[col_float] = df[col_float].astype('float32')

替换:num_encode = {'col_1' : {'YES':1, 'NO':0}, 'col_2' : {'WON':1, 'LOSE':0, 'DRAW':0}} df.replace(num_encode, inplace=True)

检查每列缺失数据的数量:return df.isnull().sum().sort_values(ascending=False)
删除列中的奇诡字符:

df['col_1'].replace('\n', '', regex=True, inplace=True)
df['col_1'].replace(' &#.*', '', regex=True, inplace=True)
删除字符串开头的空格:df[col] = df[col].str.lstrip()
两列连接,得到新的列:
def concat_col_str_condition(df): # concat 2 columns with strings if the last 3 letters of the first column are 'pil'
mask = df['col_1'].str.endswith('pil', na=False)
col_new = df[mask]['col_1'] + df[mask]['col_2']
col_new.replace('pil', ' ', regex=True, inplace=True) # replace the 'pil' with emtpy space

字符串转时间:df.insert(loc=2, column='timestamp', value=pd.to_datetime(df.transdate, format='%Y-%m-%d %H:%M:%S.%f')) 


1  engine是使用的分析引擎,读取csv文件一般指定python避免中文和编码造成的报错。

2  df.info()帮助我们一步摸清各列数据的类型,以及缺失情况:

3  使用Pandas时,尽量避免用行的思维来处理数据,要逐渐养成一种列向思维,每一列是同宗同源,处理起来是嗖嗖的快

4  1)增加一列,用df['新列名'] = 新列值的形式

2) 用drop函数制定删除对应的列,axis = 1表示针对列的操作,删除多列用[col1,col2,col3]

3) 选取某一列: df['列名']即可          选取多列:df[['第一列','第二列','第三列'..]]

4 简单的更改:df['旧列名'] =  某个值或者某列值,就完成了对原列数值的修改。

改多列:df2[['aa','cc']]=90

5  字符串类型是最常用的格式之一了,Pandas中字符串的操作和原生字符串操作几乎一毛一样,唯一不同的是需要在操作前加上".str"

小Z温馨提示:我们最初用df2.info()查看数据类型时,非数值型的列都返回的是object格式,

在常规实际应用中,我们可以先理解为object对应的就是str格式,int64对应的就是int格式,float64对应的就是float格式即可

6 字符串转数字

df2['cc']=df2['cc'].astype(float)

7  字符串转时间

df2['dd']=pd.to_datetime(df2['dd'])

8 基于位置(数字)的索引:含首不含尾

  选行

 选列

  选行和列

9 基于名称(标签)的索引

  选行

  选列

  选行和列

在pandas中,要表示同时满足,各条件之间要用"&"符号连接,条件内部最好用括号区分;如果是“或”的关系(满足一个即可),则用“|”符号连接:

10 指定读取哪个sheet页

11 纵向合并(一般是有相同的列,有几列不一样也没事)

12 横向合并

left和rgiht分别对应着需要连接的左表和右表,left_index与right_index是当我们用索引连接时指定的参数,利用列进行连接时,用“left_on = '姓名',right_on = '姓名'”

左连接(left)和右连接(right),我们可以直观理解为哪边的表是老大,谁是老大,就听谁的(所有行全部保持),先看左连接,左表h1原封不动,右边根据左表进行合并,如果存在相关的名字,就正常返回数据,如果不存在(韩梅梅、李雷),就返回空(NAN)值;右连接就是听右表的,左表有则返回无则为空。

外连接是两张表妥协的产物,我的数据全保留,你的也全保留,你有我无的就空着,你无我有的也空着

12  去空: dropna函数默认删除所有出现空值的行,即只要一行中任意一个字段为空,就会被删除

可以设置subset参数,例如dropna(subset = ['city']),来指定当一行中的city字段为空时,才会被删除

13 去重 :drop_duplicates方法去重默认会删掉完全重复的行   对某行去重:subset

14 排序:df2.sort_values(['cc','bb'],ascending=False)

15 分组求和:

对分组后的某些列求和

16 不让分组的列变成索引

不让分组的列变成索引

也可以通过reset_index()实现不让分组的列变成索引

17 切分(分桶)操作常用于一维数组的分类和打标(给数据分区间,并给每一区间打标签)

18  apply()

pandas 3的更多相关文章

  1. pandas基础-Python3

    未完 for examples: example 1: # Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEM ...

  2. 10 Minutes to pandas

    摘要   一.创建对象 二.查看数据 三.选择和设置 四.缺失值处理 五.相关操作 六.聚合 七.重排(Reshaping) 八.时间序列 九.Categorical类型   十.画图      十一 ...

  3. 利用Python进行数据分析(15) pandas基础: 字符串操作

      字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...

  4. 利用Python进行数据分析(10) pandas基础: 处理缺失数据

      数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...

  5. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  6. 利用Python进行数据分析(9) pandas基础: 汇总统计和计算

    pandas 对象拥有一些常用的数学和统计方法.   例如,sum() 方法,进行列小计:   sum() 方法传入 axis=1 指定为横向汇总,即行小计:   idxmax() 获取最大值对应的索 ...

  7. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  9. pandas.DataFrame对行和列求和及添加新行和列

    导入模块: from pandas import DataFrame import pandas as pd import numpy as np 生成DataFrame数据 df = DataFra ...

  10. pandas.DataFrame排除特定行

    使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame 如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列 ...

随机推荐

  1. matlab中执行mex文件时提示GLIBCXX not found

    解决方案参考: http://stackoverflow.com/questions/8421708/glibcxx-not-found-when-compiling-vtk-example-unde ...

  2. 分布式自增ID算法snowflake

    分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的,作为索引非常不好,严重影响性能. ...

  3. PyCharm:设置py文件头部信息

    P PyCharm:设置py文件头部信息file->setting->appearance & behavior->editor->file and code temp ...

  4. 【HC89S003F4开发板】 8c转义成汇编工程

    HC89S003F4开发板建立汇编工程 选择编译文件 @选用开发板闪灯例程,将例程删除多余的注释,后面生成的文件会更直观. #define ALLOCATE_EXTERN #include " ...

  5. 最小轻量级的Istio来了,仅使用流量治理能力

    Istio 1.0.1作为8月份的版本已经发布,主要修复了1.0版本发布以来发现的一些关键Issue.官网的release note(https://istio.io/about/notes/1.0. ...

  6. 案例(1)-- OOM异常

    问题描述: 1.系统在执行某个操作时,必现OOM异常. 问题的定位: 1.排查代码,未发现问题. 2.在虚拟机启动时,添加参数:-XX:+HeapDumpOnOutOfMemoryError(当发生o ...

  7. 【转】SpringCloud学习笔记(一)——基础

    什么是微服务架构 简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进 ...

  8. ssh免密登陆(简单快捷)

    介绍免密登陆配合下边这张图可以了解下过程: 假设现在A要通过免密登陆B 在A上的操作: 1.终端输入ssh-keygen (后边可以指定加密算法:-t 算法,如果不指定就是默认的rsa) 原理: 首先 ...

  9. ChibiOS/RT移植到STM32F407

    官网地址:http://www.chibios.org/dokuwiki/doku.php 下载源码 找到STM32F407的demos程序(chibios\demos\STM32\RT-STM32F ...

  10. stm32 内部flash

    嵌入式闪存 闪存存储器有主存储块和信息块组成 大容量产品主存储块最大为64K×64位,每个存储块划分为256个2K字节的页 编程和擦除闪存 闪存编程一次可以写入16位(半字) 闪存擦除操作可以按页面擦 ...