Pandas是一个开放源码的Python库,它使用强大的数据结构DataFrame提供高性能的数据操作和分析工具。
一、快速入门
1.1 创建对象
Pandas有三种数据结构:Series,DataFrame,Panel。(系列,数据帧,面板)
- Series: 均匀数据,尺寸固定大小,数据值可变
- DataFrame: 异构数据,大小可变,数据可变
- Panel: 异构数据,大小可变,数据可变
# 创建Series对象
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
'''
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
'''
# 通过传递numpy数组创建DataFrame
dates = pd.date_range('20170101', periods=7)
print(dates)
# ['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06', '2017-01-07']
df = pd.DataFrame(np.random.randn(7, 4), index=dates, columns=list('ABCD'))
print(df)
'''
A B C D
2017-01-01 -0.761494 0.137727 0.349565 0.109320
2017-01-02 -0.327872 -1.911246 0.103956 -0.019705
2017-01-03 -0.864784 -3.354245 0.940143 0.803693
2017-01-04 1.977930 0.062642 -0.789538 0.849528
2017-01-05 -1.671936 -0.192319 -1.731093 -0.517766
2017-01-06 -1.067189 -1.387633 -0.290631 0.021469
2017-01-07 -1.456525 0.242317 -0.290660 -0.179487
'''
# 通过传递可以转换为类似系列的对象的字典来创建DataFrame
df2 = pd.DataFrame({'A': 1.,
'B': pd.Timestamp('20170102'),
'C': pd.Series(1, index=list(range(4)), dtype='float32'),
'D': np.array([3] * 4, dtype='int32'),
'E': pd.Categorical(["test", "train", "test", "train"]),
'F': 'foo'})
print(df2)
'''
A B C D E F
0 1.0 2017-01-02 1.0 3 test foo
1 1.0 2017-01-02 1.0 3 train foo
2 1.0 2017-01-02 1.0 3 test foo
3 1.0 2017-01-02 1.0 3 train foo
'''
1.2 查看数据
dates = pd.date_range('20170101', periods=7)
df = pd.DataFrame(np.random.randn(7, 4), index=dates, columns=list('ABCD'))
print(df.head())
'''
A B C D
2017-01-01 2.061425 -0.732042 1.650411 -0.483308
2017-01-02 0.046950 1.327234 0.330287 -1.109251
2017-01-03 -0.210809 0.957618 -0.580608 0.909361
2017-01-04 -0.271967 -0.083892 -0.380328 0.348361
2017-01-05 0.356665 1.913