代码:
import numpy as np
import pandas as pd
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("输出列")
print(df['A'])
print(df.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
输出列
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 1
2013-01-02 5
2013-01-03 9
2013-01-04 13
2013-01-05 17
2013-01-06 21
Freq: D, Name: B, dtype: int64
代码:
print("输出行")
# 输出行
print(df['20130101':'20130105'])
print(df[0:3])
print(df['20130101':'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
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-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
代码:
print("LOC")
# 根据标签选择:loc
print(df.loc['20130102'])
# 保留行,选择列
print(df.loc[:, ['A', 'B']])
print(df.loc['20130102', ['A', 'B']]
运行结果:
LOC
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
代码:
# 根据位置选择:iloc
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
代码:
# 将loc和iloc在一起塞选:ix
print(df.ix[:3, ['A', 'C']])
运行结果:
A C
2013-01-01 0 2
2013-01-02 4 6
2013-01-03 8 10
代码:
# 是或否的塞选
print(df[df.A > 8])
print("TEST")
dates = pd.date_range('2018.1.12', periods=5)
df = pd.DataFrame(data=np.arange(15).reshape(5, 3), index=dates, columns=['A', 'B', 'C'])
print(df)
运行结果:
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
TEST
A B C
2018-01-12 0 1 2
2018-01-13 3 4 5
2018-01-14 6 7 8
2018-01-15 9 10 11
2018-01-16 12 13 14