Pandas快速入门(一)
2019-09-29 本文已影响0人
乔治大叔
一、什么是Pandas ?
Pandas
是一个开源的Python的数据分析库,BSD许可的库,为Python编程语言提供高性能,易于使用的数据结构和数据分析工具。
二、为什么要用Pandas ?
Python在数据处理和准备方面一直做得很好,但在数据分析和建模方面就没那么好了。Pandas帮助填补了这一空白,使您能够在Python中执行整个数据分析工作流程
Python与Pandas在广泛的学术和商业领域中使用,包括金融,神经科学,经济学,统计学,广告,网络分析,等等。
三、入门Pandas
1. 通常,我们按如下方式导入 Pandas:
In [1]: import numpy as np
In [2]: import pandas as pd
2. 对象创建
通过传入一些值的列表来创建一个Series,Pandas会自动创建一个默认的整数索引:
s = pd.Series([1,3,5,np.nan,2,4,6])
print(s)
0 1.0
1 3.0
2 5.0
3 NaN
4 2.0
5 4.0
6 6.0
dtype: float64
通过传递带有日期时间索引和带标签列的NumPy数组来创建DataFrame
df = pd.DataFrame(np.random.randn(6, 4), index=pd.date_range('20190901', periods=6), columns=list('ABCD'))
print(df)
A B C D
2019-09-01 -1.661250 1.008909 0.192640 -0.146610
2019-09-02 -0.215992 -0.113884 0.365838 -0.253161
2019-09-03 -2.875189 -0.454827 -0.084804 1.436878
2019-09-04 -0.310008 -0.958814 1.371260 2.326361
2019-09-05 0.458977 1.834737 1.086609 -1.714873
2019-09-06 0.995078 -0.458551 1.844880 1.654410
3. 查看数据
DataFrame
A B C D
2019-09-01 -1.661250 1.008909 0.192640 -0.146610
2019-09-02 -0.215992 -0.113884 0.365838 -0.253161
2019-09-03 -2.875189 -0.454827 -0.084804 1.436878
2019-09-04 -0.310008 -0.958814 1.371260 2.326361
2019-09-05 0.458977 1.834737 1.086609 -1.714873
2019-09-06 0.995078 -0.458551 1.844880 1.654410
查看DataFrame顶部和尾部的数据:
print(df.head(1)) #查看前面N行
print(df.tail(1)) #查看后面N行
print(df.columns) #查看列索引
print(df.to_numpy()) #只显示数据,不显示行、列索引
A B C D
2019-09-01 -1.66125 1.008909 0.19264 -0.14661
A B C D
2019-09-06 0.995078 -0.458551 1.84488 1.65441
Index(['A', 'B', 'C', 'D'], dtype='object')
[[-1.66124953 1.00890873 0.19263997 -0.14661048]
[-0.2159917 -0.11388431 0.36583777 -0.25316099]
[-2.87518903 -0.45482652 -0.08480368 1.4368784 ]
[-0.31000762 -0.95881398 1.37126015 2.32636067]
[ 0.45897748 1.83473729 1.08660874 -1.71487318]
[ 0.99507797 -0.45855055 1.84488027 1.65440963]]
4. 对象旋转
print(df.T) #行列转制数据
print(df.sort_index(axis=1,ascending=False)) #列转制数据
print(df.sort_index(ascending=False)) #行转制数据
2019-09-01 2019-09-02 2019-09-03 2019-09-04 2019-09-05 2019-09-06
A -1.661250 -0.215992 -2.875189 -0.310008 0.458977 0.995078
B 1.008909 -0.113884 -0.454827 -0.958814 1.834737 -0.458551
C 0.192640 0.365838 -0.084804 1.371260 1.086609 1.844880
D -0.146610 -0.253161 1.436878 2.326361 -1.714873 1.654410
D C B A
2019-09-01 -0.146610 0.192640 1.008909 -1.661250
2019-09-02 -0.253161 0.365838 -0.113884 -0.215992
2019-09-03 1.436878 -0.084804 -0.454827 -2.875189
2019-09-04 2.326361 1.371260 -0.958814 -0.310008
2019-09-05 -1.714873 1.086609 1.834737 0.458977
2019-09-06 1.654410 1.844880 -0.458551 0.995078
A B C D
2019-09-06 0.995078 -0.458551 1.844880 1.654410
2019-09-05 0.458977 1.834737 1.086609 -1.714873
2019-09-04 -0.310008 -0.958814 1.371260 2.326361
2019-09-03 -2.875189 -0.454827 -0.084804 1.436878
2019-09-02 -0.215992 -0.113884 0.365838 -0.253161
2019-09-01 -1.661250 1.008909 0.192640 -0.146610
5. 对象选择
print(df.sort_values(by='B')) #选择B列,按B列值从小到大排序
print(df.iloc[:3]) #df[行,列],取前3行
print(df.iloc[:,:3]) #df[行,列],取前3列
print(df.loc['2019-09-04':'2019-09-06']) #df[行,列],按行索引取值
print(df.loc[:,'A':'C']) #df[行,列],按列索引取值
A B C D
2019-09-04 -0.310008 -0.958814 1.371260 2.326361
2019-09-06 0.995078 -0.458551 1.844880 1.654410
2019-09-03 -2.875189 -0.454827 -0.084804 1.436878
2019-09-02 -0.215992 -0.113884 0.365838 -0.253161
2019-09-01 -1.661250 1.008909 0.192640 -0.146610
2019-09-05 0.458977 1.834737 1.086609 -1.714873
A B C D
2019-09-01 -1.661250 1.008909 0.192640 -0.146610
2019-09-02 -0.215992 -0.113884 0.365838 -0.253161
2019-09-03 -2.875189 -0.454827 -0.084804 1.436878
A B C
2019-09-04 -0.310008 -0.958814 1.371260
2019-09-06 0.995078 -0.458551 1.844880
2019-09-03 -2.875189 -0.454827 -0.084804
2019-09-02 -0.215992 -0.113884 0.365838
2019-09-01 -1.661250 1.008909 0.192640
2019-09-05 0.458977 1.834737 1.086609
A B C D
2019-09-04 -0.310008 -0.958814 1.371260 2.326361
2019-09-05 0.458977 1.834737 1.086609 -1.714873
2019-09-06 0.995078 -0.458551 1.844880 1.654410