本篇内容介绍了“Pandas中df.loc[]与df.iloc[]怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
取数: 从dataframe中取 一部分行与列的数据 (为主)
赋值: 给指定的 行与列赋值 df.loc[xx,xx] = xx
方括号内的参数:
loc、iloc 方括号中,参数的排布模式为[行条件,列条件],当总体条件只有一个时候(最外层方括号内无逗号),会按照:先行后列的方法来匹配对应的条件
默认会抛弃掉对应的dataframe格式,输出series,如果想保留dataframe格式,需要在条件外边加 ”[ ]”。
loc与iloc条件(行/列)相同之处:
单一元素(不包含list) str/int/slice 选取行时候,选取的是对应条件下的行 (series)
单一元素(不包含list) str/int/slice 选取列时候,选取的是对应条件下的列(series)
条件为list时候,选取的是一组对应的 行(列) 条件下的(dataframe数据)
布尔值的list/可与df对齐的series(布尔类型): 与index长度相同的话 选择对应值为True的行,与列数相同的话,选取对应值为True 的列。
df的index的子集index2: 选取df中对应的index2的行
函数:输入为行/列series(外层有逗号)或者dataframe(外层无括号) 返回为对应输入的一个布尔值表,用来筛选对应的数据。
不同之处:
当对应的行/列标签为 int类型x时候,iloc表示对应的第x个 index或column,而loc 表示对应的index /column名称等于这个x。
对应的开闭区间不同 df.loc[1:5,1:5] 会有一个最多 5x5的df数据子集,而df.iloc[1:5,1:5] 会有最多4x4df数据子集,其中iloc的行/列切片不包含最后一个数(与range函数类似)
df = pd.DataFrame([[1, 2,3,14], [4, 5,6,17], [7, 8,9,10],[11,12,13,14]], index=[2,3,4,5], columns=[2,4,5,6]) # loc 行/列条件是对应的标签值在对应的范围内,[闭合,闭合] 区间 df.loc[2:5,2:5] # 输出为: # 2 4 5 #2 1 2 3 #3 4 5 6 #4 7 8 9 #5 11 12 13 # 选取index 为 2 的行里面的值 # 不推荐:df.loc[2] 下文省略 df.loc[2,:] # 输出为 1,2,3,14 series类型 # 选取index 为 2 的行 保留dataframe类型 df.loc[[2],:] #选取对应列名为 2 的列 df.loc[:,2] # 这里 index 与 列名都是int类型,因此loc方括号中使用int类型,如果是其他类型,对应的数字要改成其他类型的数据,不能再用数字 # iloc 行/列条件是对应的标签或者列名的索引值在范围内,[闭合,开放) 区间 df.iloc[2:5,2:5] # 输出为 # 5 6 #4 9 10 #5 13 14 # 这里 索引是以0开始的,所有行的切片应该写作 0:5 也可以写作“ :” # iloc 数字类型来做筛选的 # 不管是loc 还是 iloc 都建议用[行条件,列条件] 来写,其中如果无需筛选可以用:来占位,表意明确。 # loc 匹配的是 index/列名的值 与对应的条件 # iloc 匹配的是 index/列名对应的索引号 与对应的条件
“Pandas中df.loc[]与df.iloc[]怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。