用Excel演示python中pandas中数据的查询显示方法-python数据分析入门

版权声明:本文为博主原创文章,未经博主允许不得转载。

       pandas是python进行数据分析必须掌握的基本技能。对于许多初学者而言,pandas中最基本的loc,iloc,at,iat等查询方法十分容易混淆。对于体量较小的数据而言excel能较好进行数据分析、整理工作,对于大多数数据工作者对excel都十分的熟悉。为了能更好的理解pandas的查询操作,这里选用excel作为对比材料,对相关的方法进行了描述,希望能对初学者学习pandas有所帮助.

l  pandas的数据结构

pandas 有两个主要的数据结构,Series和DataFrame

Series类似一维数组的对象,简单点可以理解为excel单独的列。

DataFrame可以理解为excel中的一张表,注意Excel表中行编号默认从1开始,pandas是从0开始的。

l  利用pandas建立一张类似excel的表

#加载pandas
import pandas as pd
#创建一个Series数据,index是自动添加从0开始编排
column_0 = pd.Series(['A_00','A_10','A_20','A_30','A_40'])
print(column_0)
#创建一个另外四列数据,index是自动添加从0开始编排
column_1 = pd.Series(['B_01','B_11','B_21','B_31','B_41'])
column_2 = pd.Series(['C_02','C_12','C_22','C_32','C_42'])
column_3 = pd.Series(['D_03','D_13','D_23','D_33','D_43'])
column_4 = pd.Series(['E_04','E_14','E_24','E_34','E_44'])
#生成一个DataFrame,或者说一张Excel表,注意Excel是默认从1开始编排的
df = pd.DataFrame({'A' : column_0,
                    'B' : column_1,
                    'C' : column_2,
                    'D' : column_3,
                    'E' : column_4,
                  })
print(df)

输出:

column_0:

      A
A_00
A_10
A_20
A_30
A_40


df:

      A     B     C     D     E
A_00  B_01  C_02  D_03  E_04
A_10  B_11  C_12  D_13  E_14
A_20  B_21  C_22  D_23  E_24
A_30  B_31  C_32  D_33  E_34
A_40  B_41  C_42  D_43  E_44

excel做一张同样的表,请仔细对比和理解pandas中的DataFarme和excel表的区别和联系。为了便于理解将列DataFarme设计成Excel的形式从A开始编号。

l  如何在选取行(行的切片)--------[i:j]

Excel有交互界面可以任宜的选取行数据。


请注意在选取行的时候,行和列的编号也是被选中的。

Pandas选取行的方法

df[i,j]选取的是从i行道j-1行,所以df[1:3]为:

      A     B     C     D     E
A_10  B_11  C_12  D_13  E_14
A_20  B_21  C_22  D_23  E_24

df[:j]选取的是从0到j-1行,df[i:]选取的是从i行道最后一行,所以df[2:]为:

      A     B     C     D     E
A_20  B_21  C_22  D_23  E_24
A_30  B_31  C_32  D_33  E_34
A_40  B_41  C_42  D_43  E_44

通过上述方法可以实现excel中行数据的显示。

l  如何在选取列(列的切片)----------.loc以及.iloc


df.loc[:,['A']] #选取列名的列数据,选取多列用逗号隔开。输出结果为:
      A
A_00
A_10
A_20
A_30
A_40
df.loc[0:2,['A']] #选取行列名的列数据,选取多列用逗号隔开。输出结果为:
      A
A_00
A_10
A_20

Iloc与loc的区别在于,loc用的是行列的值作为引用的数据,而iloc用的是编号。

df.loc[0:2,['A']] 等同于 df.iloc[0:3,0:1] 

请思考为什么前置0:2显示3列,而后者显示3列是0:3?

df.loc[:,['A']] 等同于 df.iloc[:,0:1] 

理解了上述方法,基本可以选取到需要的切片了。

l  如何选取指定单元格的值(注意只是值,没有行列名)----------.at以及.iat


如果我们想快速的修改表中的某个值,必须有办法获取这个单元格的值,这里就要用到at以及iat,两者的区别类似loc以及iloc。

df.at[3,'B'] #输出结果为
B_31
df.at[3,'B'] 等同于  df.iat[3,1]

这个建立这个excel表的意义在于帮助理解python中的编号。

修改表中的值

df.iat[3,1] = 'select' #表变为:
      A       B     C     D     E
A_00    B_01  C_02  D_03  E_04
A_10    B_11  C_12  D_13  E_14
A_20    B_21  C_22  D_23  E_24
A_30  select  C_32  D_33  E_34
A_40    B_41  C_42  D_43  E_44

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值