• Pandas的使用总结


    Pandas的使用总结-1

    更新:在pandas的1.0.0版本开始,移除了Series.ix and DataFrame.ix 方法

    样例DataFrame:

    >>> df
        A   B   C   D
    0  a1  b1  c1  d1
    1  a2  b2  c2  d2
    2  a3  b3  c3  d3
    3  a4  b4  c4  d4
    4  a5  b5  c5  d5
    5  a6  b6  c6  d6

    1.选取,切片

    pandas中选取方式有很多种,最常用的是一下几种:直接选取(单维度选取)、iloc();loc();ix()函数选取(区域选区),at();iat()函数选取(单元格选取)。

    1.1直接选取

    选取行:直接在定义的df后加[ ],然后输入数字索引或者定义的行标签,可以使用切片。
    选取列:直接在定义的df后加[ ],然后输入定义的列标签,不能使用切片。
    选取行使用切片时应注意,数字索引为左闭右开,自己定义的标签索引为左闭右闭。

    #选取行
    df[0 : 2]#左闭右开
    df['a' : 'c']#左闭右闭
    
    #选取列
    df['A']
    df[['A', 'C']]#多个列的时候要用两个[]
    #注意选取列不能切片方法,如
    #df['A':'C']
    
    #条件选取
    df[[i > 30 for i in df['age']]]
    df[df['age'] > 30]
    
    #当条件有多个时,可以用& | !=等连接多个条件,但是每个条件都要被()包括
    #筛选出年龄大于30且未婚的人
    df[(df['age'] > 30) & (df['isMarried'] == 'no')]#多个条件,每个条件要用()括起来

    1.2 loc[]、iloc[]、ix[]方法(属性)选取区域

    loc[],只能用标签选取,前闭后闭
    iloc[],只能用整数选取,前闭后开
    ix[], 可以使用标签和整数。不管用哪个索引,均为左闭右闭。
    三种方法都可以时用切片,也可以进行条件选取。

    1.2.1 loc[]

     1 #.loc[],只能用标签选取,前闭后闭
     2 #选取行
     3 df.loc[2, :]
     4 df.loc[2]#默认所有列,这俩种方式等价
     5 
     6 df.loc[2:5, :]#使用切片时不用加[ ]
     7 df.loc[[2, 4], ['B', 'D']]#选择多个单独的行时,要加[ ],相当于创建一个所选行或列的列表
     8 df.loc[df['age'] > 30, : ]#条件选取
     9 
    10 #选择列
    11 df.loc[:, 'B']
    12 df.loc[:, 'B' : 'D']#使用切片时不用加[ ]
    13 df.loc[:, ['B', 'D']]#选择多个单独的列时,要加[ ]
    14 df.loc[df['age'] > 30, ['name', 'age']]#条件选取

    1.2.2 iloc[]

     1 #iloc[],只能用整数选取,前闭后开
     2 #选取行
     3 df.iloc[0, :]
     4 df.iloc[0]#默认所有列
     5 df.iloc[0 : 3, :]#使用切片时不用加[ ]
     6 df.iloc[[0, 3], :]##选择某个区域,选择多个单独的行时,要加[ ]
     7 #df.iloc[df.iloc[0] > 30, :]不可行
     8 
     9 #选取列
    10 df.iloc[:, 0]
    11 df.iloc[:, 0 : 3]#不包含第四列
    12 df.iloc[:, [0, 3]]#第一列和第四列
    13 
    14 
    15 #同时选取行和列(选取区域)
    16 df.iloc[1, [0, 2, 3]]
    17 df.iloc[: 3, : 3]

    1.2.3 ix[]

    实际上是上面俩种方式的综合,无论使用整数还是标签都可以,混合使用都可以。

    1.2.4 at[]与iat[]选取具体某一个单元格

    既可以类比啦,一种是只能用标签、一种是只能用整数选取,只不过是选取单元格数据的方法。

    1 df.at[1,'B']
    2 #此处注意,第一个标签之所以是数字1,是因为此df正好是整数1
    3 
    4 df.iat[1,1]
    5 #此处注意,一个参数和上面都是1,但是意义不一样,此处为数字1,上面的是标签1

    2. DataFrame和Series的索引重置

    1 #重新从0开始排序设置索引
    2 df.reset_index()
    3 
    4 #暴力指定索引
    5 df.index = range(1,7,1)) #索引从1开始 
  • 相关阅读:
    Uboot命令使用
    git删除某次提交
    chrome随意改变主题
    C++11——处理日期和时间的chrono库
    C++11——多线程异步操作
    C++11——原子变量
    C++11——C++线程同步之条件变量
    C++11——C++线程同步之互斥锁
    C++11——call_once
    C++11——命名空间
  • 原文地址:https://www.cnblogs.com/nanmi/p/12624994.html
Copyright © 2020-2023  润新知