呀~博主是正在学习数据分析的一员,记录的是自己学习过程中总结的知识点,肯定有不完善的地方,如有问题可以私聊我改正,共同学习进步。希望大家都能保持学习的热情,坚持自己,不断超越自己!
博客地址: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)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复