pandas 是基于python语言的数据分析处理库,使用广泛。本文主要参考pandas的官方入门指导,并结合自己入门使用的一些常用操作进行说明。
pandas通常和numpy结合使用,一般通过如下语句导入numpy和pandas库。
import numpy as np
import pandas as pd
一. pandas 数据结构
pandas提供两类基本数据结构,即series和dataframe。
1.1 series
series 是一维带标签的数组,可以存放整形, 字符串, python object 等类型。
可以通过如下方式传入一个列表来创建series:
In [3]: s = pd.Series([1, 3, 5, np.nan, 6, 8])
In [4]: s
Out[4]:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
1.2 dataframe
有行和列的二维数据结构。
DataFrame 可以传入数组创建,也可以传入字典进行创建。
In [5]: dates = pd.date_range("20130101", periods=6)
In [6]: dates
Out[6]:
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
'2013-01-05', '2013-01-06'],
dtype='datetime64[ns]', freq='D')
In [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
In [8]: df
Out[8]:
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
通过字典的方式创建,字典的keys 即为DataFrame的列标签,字典的值即为DataFrame的值。
In [9]: df2 = pd.DataFrame(
...: {
...: "A": 1.0,
...: "B": pd.Timestamp("20130102"),
...: "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",
...: }
...: )
...:
In [10]: df2
Out[10]:
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo
DataFrame 的每一列数据的格式相同,可以通过dtypes 方法获取
In [11]: df2.dtypes
Out[11]:
A float64
B datetime64[s]
C float32
D int32
E category
F object
dtype: object
使用IPython,可以通过tab获取DataFrame的列名称以及公共属性。
二. 数据查看
2.1 head 和tail方法,查看头部和尾部的行数据
In [13]: df.head()
Out[13]:
A B C D
2013-01-01 0.469112 -0.282863