『python系列』用索引函数loc和iloc筛选行列

相信大部分朋友最开始在使用Pandas的索引函数时,很容易混淆loc()、iloc()这两个函数的用法,我也是这样,这篇文章就来搞清楚它们之间的区别,扎实数据分析的代码基本功。

  • loc:基于标签,用行名、列名进行索引。常用切片(如df.loc[‘行1′:’行3’])或者列表(如df.loc[[‘行1′,’行2’]])形式进行索引。
  • help(pandas.DataFrame.iloc)
  • pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html
  • 构造示例数据集

import pandas as pd
df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9], [10,11,12]],
index=['行1','行2','行3','行4'],
                   columns=['列1','列2','列3'])

'''筛选1行 & 返回Series'''
df.loc['行1']
df.iloc[0]
'''筛选1行 & 返回DataFrame'''
df.loc[['行1']]
df.iloc[[0]]
'''筛选多行'''
df.loc[['行1','行4']]
df.iloc[[0,3]]
'''连续筛选多行'''
df[0:3]
df.loc['行1':'行3']
df.iloc[0:3]
'''条件筛选多行'''
df[df['列1']>=5]
df.loc[df['列1']>=5]
df.loc[lambda df: df['列1']>=5]

'''筛选1列 & 返回Series'''
df['列1']
df.loc[:,'列1']
df.iloc[:,0]
'''筛选1列 & 返回DataFrame'''
df[['列1']]
df.loc[:,['列1']]
df.iloc[:,[0]]
'''筛选多列'''
df.loc[:,['列1','列3']]
df.iloc[:,[0,2]]
'''连续筛选多列'''
df.loc[:,'列1':'列3']
df.iloc[:,0:3]

'''筛选多行+多列'''
df.loc[['行1','行3'],['列1','列3']]
df.iloc[[0,2],[0,2]]
'''连续筛选多行+多列'''
df.loc['行1':'行3','列1':'列3']
df.loc['行1':'行3',['列1','列2','列3']]
df.iloc[0:3,0:3]
'''返回单label值'''
df.loc['行1','列1']
df.iloc[0,0]

题图来源:网站Pexels

THE END

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/239565.html

联系我们
联系我们
分享本页
返回顶部