我是靠谱客的博主 温暖绿茶,这篇文章主要介绍python数据分析-pandas模块基础知识(3),现在分享给大家,希望可以做个参考。

呀~博主是正在学习数据分析的一员,记录的是自己学习过程中总结的知识点,肯定有不完善的地方,如有问题可以私聊我改正,共同学习进步。希望大家都能保持学习的热情,坚持自己,不断超越自己!
博客地址:qxi的博客

还是可以先预习下前面的知识点耶:
pandas基础知识(1)
pandas基础知识(2)
#接着前面的文章介绍DataFrame,这一篇总结的是如何在DataFrame中选择我们想要的数据#
1.单独选择某些行或者某些列的操作,不借助其他函数的,直接在df上操作。

import pandas as pd
import numpy as np
dates=pd.date_range('20130101',periods=6) #生成时间序列
df=pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C','D'])
print(df['A']) #取A列
print(df.A) #取A列
print(df[['A','B']]) #取A,B列
print(df[0:3])  #切片取第0行,第1行,第2行
print(df['20130102':'20130104']) #取20130102到20130104这些行

运行结果:

             A   B   C   D
2013-01-01   0   1   2   3
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23  #原DataFrame
2013-01-01     0
2013-01-02     4
2013-01-03     8
2013-01-04    12
2013-01-05    16
2013-01-06    20
Freq: D, Name: A, dtype: int32   #取出了A列
2013-01-01     0
2013-01-02     4
2013-01-03     8
2013-01-04    12
2013-01-05    16
2013-01-06    20
Freq: D, Name: A, dtype: int32 #同样取出了A列
             A   B
2013-01-01   0   1
2013-01-02   4   5
2013-01-03   8   9
2013-01-04  12  13
2013-01-05  16  17
2013-01-06  20  21  #取出了A,B列
            A  B   C   D
2013-01-01  0  1   2   3
2013-01-02  4  5   6   7
2013-01-03  8  9  10  11  #取出了前3行
             A   B   C   D
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15  #取出指定的行

2.利用loc[]函数取出指定的行与列,中间用逗号隔开行与列,利用这个函数中括号里面是根据索引值来指定行,列的,比如例子中的行索引’20130102’,列索引A,B

import pandas as pd
import numpy as np
dates=pd.date_range('20130101',periods=6) #生成时间序列
df=pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C','D'])
print(df)
print(df.loc['20130102'])   #取20130102这一行
print(df.loc[:,['A','B']])   #取A,B列
print(df.loc['20130102':'20130104',:])   #取两行
print(df.loc['20130102',['A','B']])   #指定行与列
print(df.loc['20130102':'20130104',['A','B']])

运行结果:

          A   B   C   D
2013-01-01   0   1   2   3
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23
A    4
B    5
C    6
D    7  #取20130102这一行所有列
Name: 2013-01-02 00:00:00, dtype: int32
             A   B
2013-01-01   0   1
2013-01-02   4   5
2013-01-03   8   9
2013-01-04  12  13
2013-01-05  16  17
2013-01-06  20  21  #取出A与B列
             A   B   C   D
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15   #取20130102-20130104这几行
A    4
B    5   #取20130102的A与B
Name: 2013-01-02 00:00:00, dtype: int32
             A   B
2013-01-02   4   5
2013-01-03   8   9
2013-01-04  12  13  #取20130102-20130104的A与B

3.利用iloc[]函数进行索引,这里中括号里面是利用序号进行指定行,列的(注意前面loc函数是利用索引值来指定的)
这里可以进行不连续筛选了。

import pandas as pd
import numpy as np
dates=pd.date_range('20130101',periods=6) #生成时间序列
df=pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C','D'])
print(df)
print(df.iloc[3])  #第3行
print(df.iloc[3,1])  #第3行第1列
print(df.iloc[3:5,1:3]) #切片
print(df.iloc[[1,3,5],1:3]) #不连续筛选
print(df[df.A>8])  #A列大于8的所有其他列

运行结果:

             A   B   C   D
2013-01-01   0   1   2   3
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23  #原DataFrame
A    12
B    13
C    14
D    15   #第3行
Name: 2013-01-04 00:00:00, dtype: int32  
13   #第3行第1列的数
             B   C
2013-01-04  13  14
2013-01-05  17  18   #切片
             B   C
2013-01-02   5   6
2013-01-04  13  14
2013-01-06  21  22   #不连续切片
             A   B   C   D
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23  #满足A列大于8的所有数据

好啦,选择数据这一块介绍的还是比较基础且详细的,慢慢看例子比较好理解,最后~记得关注我哟,会持续更新的。

最后

以上就是温暖绿茶最近收集整理的关于python数据分析-pandas模块基础知识(3)的全部内容,更多相关python数据分析-pandas模块基础知识(3)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部