pandas是一个提供快速,灵活和表达性数据结构的Python包,旨在使“关系”或“标记”数据变得简单直观。它旨在成为在Python中进行实用的真实世界数据分析的基本高级构建块。
pandas非常适合许多不同类型的数据:
- 具有非均匀类型列的表格数据,如在SQL表或Excel电子表格中
- 有序和无序(不一定是固定频率)时间序列数据。
- 带有行和列标签的任意矩阵数据(均匀类型或异质)
- 任何其他形式的观测/统计数据集。数据实际上不需要被标记就可以被放置到Pandas的数据结构中
pandas的两个主要数据结构Series(一维)和Dataframe(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域。
创建对象
import pandasimport numpy# 可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引s = pandas.Series([1, 3, 5, numpy.nan, 6, 8])print("通过传递一个list对象来创建一个Series:", s, sep="\n")# 通过传递一个 numpyarray,时间索引以及列标签来创建一个DataFrame:dates = pandas.date_range("20180509", periods=6)print("时间索引: \n", dates)df = pandas.DataFrame(numpy.random.randn(6, 4), index=dates, columns=list('ABCD'))print("时间索引以及列标签来创建一个DataFrame:", df, sep="\n")# 通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFramedf = pandas.DataFrame({# 类集合 "A": 1, "B": pandas.Timestamp("20180509"), "C": pandas.Series(1, index=list(range(4)), dtype=float), # Series数组 "D": numpy.array([3]*4, dtype=int), # 数组 "E": pandas.Categorical(["test", "train", "test", "train"]), # Categorical按某一列重新编码分类 "F": "foo"})print("字典对象来创建一个DataFrame", df, sep="\n")# 查看不同列的数据类型print("df.type: ", df.dtypes, sep="\n")
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py通过传递一个list对象来创建一个Series:0 1.01 3.02 5.03 NaN4 6.05 8.0dtype: float64时间索引: DatetimeIndex(['2018-05-09', '2018-05-10', '2018-05-11', '2018-05-12', '2018-05-13', '2018-05-14'], dtype='datetime64[ns]', freq='D')时间索引以及列标签来创建一个DataFrame: A B C D2018-05-09 -0.243263 -0.340719 -0.043909 0.2485482018-05-10 2.720385 1.124380 -1.119360 0.6109992018-05-11 -0.375457 -1.193914 1.132776 2.0949972018-05-12 -0.435122 0.475113 1.294536 -0.0278112018-05-13 0.038138 -0.820069 0.744213 -1.3010142018-05-14 -1.937454 -1.693728 -1.011248 -2.689147字典对象来创建一个DataFrame A B C D E F0 1 2018-05-09 1.0 3 test foo1 1 2018-05-09 1.0 3 train foo2 1 2018-05-09 1.0 3 test foo3 1 2018-05-09 1.0 3 train foodf.type: A int64B datetime64[ns]C float64D int32E categoryF objectdtype: objectProcess finished with exit code 0