pandas中loc和iloc的使用细节

1、缘由

        前段时间在使用pandas库中的索引和切片的时候,突然就感觉有点懵,赋值和索引的操作总是报错。

        网上的很多资料讲的也非常的浅显,而且使用起来非常不顺手。

        于是我就找到很多的网上资料,然后自己动手操作总结了一下。

2、细节内容

        1、loc 对应的是原生索引,对应的是序列号,索引的设置只能是数字
          loc 对应的是设置的索引,可以设置字符串,如果设置的索引为数字,那么就可以根据数字索引来使用。

        2、iloc[[i],:]可以,但是iloc[i]不可以
          因为第一个是切片得到的二维数组表,第二个得到的是一条信息。
        3、pf.loc[pf[(pf['标记']==pf['标记'].max())].index.tolist()[0],'备注']=1(其实这一行代码作用并不大,但是可以帮助掌握一些二维数组属性和方法)

          pf2['标记']==pf2['标记'].max() 返回的是一系列的布尔值,把他们做成一个元组
          就可以用来筛选出符合条件的数据。
          如:pf[pf['标记']==pf['标记'].max()]

        4、.iloc用于位置索引,里面的数据是数字。
          可以根据位置查找某一个值;
          可以使用iloc[ : , : ]来完成切片操作;
          可以使用iloc[[ ],[ ]]来选取自己需要的某行和列的数据

        5、loc用于标签索引,里面是所在的索引
          单单可以输入列名,选取的是某列的内容
          输入数字,那么就是根据标签的行索进行的筛选
          输入列名,那么就是根据标签的列索进列的筛选
          可以切片loc[ ],是根据索引名称进行的
    可以花式索引(列表筛选),选取自己需要的某行和某列的数据。
    如pf.loc[['1','3'],['A','b']]


  6、两者联系
    loc[ ]和pf[ ]里面一样可以根据条件筛选
    但是ilo不可以
    需要更改二维数组中的数据时只能使用loc[ ],不能使用iloc[]

  7、df.loc[ ]  用起来更顺手一些

posted @ 2021-08-05 18:57  山水无期  阅读(948)  评论(0)    收藏  举报