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'])
df
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
简单选择
- 选择某列
print(df['A'])
print(df.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: int64
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: int64
- 切片选择
print(df[0:3])
print(df['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
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
select by label:loc 按标签来选择
print(df.loc['20130102'])
print(df.loc[:,['A','B']])
print(df.loc['20130102',['A','B']])
A 4
B 5
C 6
D 7
Name: 2013-01-02 00:00:00, dtype: int64
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 4
B 5
Name: 2013-01-02 00:00:00, dtype: int64
select by position:iloc 按位置来选择 与numpy相似
print(df.iloc[3])
print(df.iloc[3,1])
print(df.iloc[3:5,1:3])
print(df.iloc[[1,3,5],1:3])
A 12
B 13
C 14
D 15
Name: 2013-01-04 00:00:00, dtype: int64
13
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
mixed selection:ix 标签与位置混合选择
print(df.ix[:3,['A','C']])
A C
2013-01-01 0 2
2013-01-02 4 6
2013-01-03 8 10
boolean indexing 是或否的选择
print(df[df.A > 8])
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
Pandas学习教程来源请戳这里