前言
文章接上章:一文速学-数据分析之Pandas数据结构和基本操作代码
上文详细介绍了Series和DataFrame作为两种Pandas基本数据结构中的创建、转换和操作。由于数据处理和分析基本都是用DataFrame实现多表操作,故关于DataFrame的操作也十分的多,不如单独拿出一篇来讲。
这里我准备了三个csv表格进行演示,这样更容易理解操作后表现的效果。分别是user_info、visit_info、result三张表格。
在上篇文章提过的操作本文中不会再提好节省大家的空闲时间。初学者可将DataFrame看作是SQL中表格,操作也类似。
一、选择
(1)单行、列查询
选择一列可以选定列名打出就行:
查询多列可以在后面接上列表进行索引:
选取按顺序一列行在后面加上切分即可:
(2)行列组合查询
面对简单的查询重组操作掌握这些方法就可,若是要做精确到行与列的选取需要掌握loc、iloc这两种操作函数就可进行自由选取:
data.loc[#具体标签选取行,#具体标签选取列]#loc只能通过index和columns来取,不能用数字
data.iloc[#初始行:#结束行,#初始列:#结束列]#iloc只能用数字索引,不能用索引名
data.ix[#初始行:#结束行(#具体标签选取行),#初始列:#结束列(#具体标签选取列)]#ix可以用数字索引,也可以用index和column索引(pandas1.0以后已经移除)
比如我想选取前五个行的数据,仅前三列
(3)按条件查询
可以理解和SQL查询一样,在查询中嵌套if查询条件就可筛选数据。例如我想要在广州且月龄超过24个月的用户:
df[(df['city_num']=='广州')&(df['age_month']>24)]
去除月龄为0的用户:
另外想要调整查询显示可以利用set_option:
pd.set_option('display.max_rows', 5)#最大显示行数:5 pd.set_option('display.max_columns', 5)#最大显示列数:5 pd.set_option('max_colwidth', 20)#显示列中单独元素的最大长度:20 pd.set_option('precision',2)#显示小数点后的位数:2 df[df['age_month']!=0]
set_option可能会在在接下来几章详细解释和效果复现。
下一章为DataFrame的合并删除操作。