python中loc和iloc,

  python中loc和iloc,

  一、loc功能和iloc功能的使用和区别

  熊猫中loc和iloc函数的用法基本相同。Iloc与it不同,它读取数据并使用行索引和列索引来定位和选择数据。loc函数可以通过行名和列名选择数据。即字符串或字母。另外,对于index,虽然loc方法也支持对Int类型的行和列进行过滤和切片。但是,这与iloc的不同之处在于,loc中的0:2实际上意味着选择索引为0:2的数据。而iloc中的0:2不包括所选内容中的2。最大值为1。在这一点上,我们必须注意不同之处。

  第二,loc功能与iloc功能的比较

  1.重视细胞。

  注意:0表示获取loc值时的行号,因为在未指定行号时,默认情况下会分配数字0。逗号后跟列名。

  ILO取值时,逗号前的0与loc相同,也是行索引,而后面的值取列的索引值,而不是列名。

  1 #%%

  2

  3只进口熊猫作为pd4

  5 df=PD . read _ Excel(R c:\ Users \ Administrator \ PycharmProjects \ python _ Basic \ Pandas _ to _ Excel \ 2020 07 27 \ student _ info . xlsx ,6 sheet_name=0)7

  8 df.head(3)9 #%%

  1loc01=df.loc [0, name ]11 loc0112 #%%

  13 iloc01=df.iloc[0,1]14 iloc01

  2.读取行数据

  注意:loc的值可以通过切片得到。0: 0表示仅选择当前第一列。

  ILO和loc的唯一区别是它只对行索引进行操作。但切片后的值位是1而不是0,因为如果是0,默认值就是二维数组的头,也就是列名。

  #%%

  loc02=df.loc[0:0]

  loc02#%%

  iloc02=df.iloc[0:1]

  iloc02

  3.读取所选指定范围的数据。

  要求:读取姓名和总分前4行的数据。

  注意:在这两种情况下,行数据是通过在逗号前切片来指定的,而列名是在逗号后读取的。当然,iloc是按列索引读取的。

  #%%

  Loc03=df.loc[0:3,[名称,总分]]

  loc03#%%

  iloc03=df.iloc[0:4,[1,5]]

  iloc03

  4.通过切片读取数据。

  注意:事实上,在前面的案例中已经使用了切片。这里,我们来巩固一下。请注意,我在行索引片的逗号前使用了步长。也就是第二个除以2,也就是说每隔一行读一次。

  与iloc相比,loc在读取列时可以指定列名,可读性比Iloc好很多。Iloc1: 6谁知道1: 6是什么鬼。一个一个数下标真的很麻烦。所以不同的场景用的不一样,看个人爱好。

  iloc03=df.iloc[0:4,[1,5]]

  iloc03#%%

  Loc04=df.loc[0:10:2,名称:总分]

  loc04#%%

  iloc04=df.iloc[0:11:2,1:6]

  iloc04

  5.通过遮罩遮罩选择数据。

  要求:选择所有语言成绩大于80分的会员信息。

  注意:对于mask mask,返回具有true和false值的布尔类型。有多少数据就返回多少值。这里需要强调的是,使用loc操作面膜面膜也是最方便的。但iloc不会展示iloc的结果,因为我个人没能演示出后面案例的成功,觉得麻烦。有兴趣的可以自己测试。测试过程中数据少了几个。

  #%%

  Loc05=df.loc[df[ language ]80]

  loc05#%%

  Df[语言]80

  2.需要:筛选出2班数学、语文、英语成绩大于80的女生。

  注意:通过面膜敷面膜。我们可以直接判断条件,在条件成立时筛选出数据。这样做的好处是不再需要使用循环值,可以大大节省IO消耗。

  df=PD . read _ Excel(R c:\ Users \ Administrator \ PycharmProjects \ python _ Basic \ Pandas _ to _ Excel \ 2020 07 27 \ student _ info . xlsx ,

  工作表名称=1)

  Df[(df[中文]80) (df[数学]80) (df[英文]80) (df[性别]=女性)]

  第三,综合案例论证

  要求:student_info.xlsx此表包含5个班级的信息,分别用5张表保存。当我们通过熊猫读取Excel的所有内容时,必须指定sheet_name=None。但是如果设置为None,那么读取的数据不是DataFrame而是dict字典。那么,如何将dict中读取的值作为工作表保存到另一个Excel中呢?这就是本案的价值。当然,如果你每张表的内容太大,不建议合并成一张表。因为这个

  数据打开,直接导致内存消耗,文件打不开。转换成表的另一个好处是,我们读取的时候不是dict而是DataFrame格式,这样在过滤数据的时候就可以直接调用DataFrame方法而不是dict方法。

  #%%

  df=PD . read _ Excel(R c:\ Users \ Administrator \ PycharmProjects \ python _ Basic \ Pandas _ to _ Excel \ 2020 07 27 \ student _ info . xlsx ,

  sheet _ name=无)

  Keys=list(df.keys()) #获取所有工作表名称的列表

  #将所有工作表的内容合并到一个工作表中(当有大量数据时,不建议使用)

  data_concat=pd。i inkeys的DataFrame():

  item=df[i]

  data _ concat=PD . concat([data _ concat,item])print(data_concat)

   data _ concat . to _ Excel(R c:\ Users \ Administrator \ PycharmProjects \ python _ Basic \ Pandas _ to _ Excel \ 2020 07 27 \ student _ info _ concat . xlsx ,

  index=False)打印(完成!)

  历史提交的图片或压缩文件

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: