dataframe通过索引获取数据的方式有[]、iloc、loc等几种方式,使用方法如下:
dates = pd.date_range("20130101", periods=6)
df3=pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
A B C D
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
一、[]
df[]的参数只能传入一个维度,要么是行索引,要么是列索引,不能同时传入行索引和列索引。
(一)当查询某一列时,df[]传入一个columns值。
df3['A']
2013-01-01 0.531617
2013-01-02 0.246897
2013-01-03 -0.998825
2013-01-04 0.155664
2013-01-05 -1.624819
2013-01-06 -0.096553
Freq: D, Name: A, dtype: float64
(二)当查询多列时,df[]传入一个columns值的列表。
df3[['A','B']]
A B
2013-01-01 0.531617 -0.482471
2013-01-02 0.246897 3.693472
2013-01-03 -0.998825 0.155230
2013-01-04 0.155664 0.496338
2013-01-05 -1.624819 0.326698
2013-01-06 -0.096553 -0.250773
(三)当查询某一行或多行时,只能传入index值的切片。
df3[0:0] #dataframe的第0行是指columns行。
A B C D
df3[0:3]
A B C D
2013-01-01 0.531617 -0.482471 0.185244 -0.236437
2013-01-02 0.246897 3.693472 0.091417 0.419647
2013-01-03 -0.998825 0.155230 0.942951 0.699358
df3[3:]
A B C D
2013-01-04 0.155664 0.496338 0.458513 0.315339
2013-01-05 -1.624819 0.326698 -2.198222 -0.544078
2013-01-06 -0.096553 -0.250773 0.491527 -1.857682
二、loc
.loc和.iloc的参数可以有值、列表、切片三种方式。传入值时,结果是series,传入列表和切片时,结果是dataframe。
.loc和.iloc的参数通过逗号分为两部分,前面是行索引或下标,后面是列索引或下标,列索引可以省略,但行索引不能省略。