-
What is Pandas
如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式。Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。
引自 Pandas 基本介绍
在计算机编程中,pandas是为Python编程语言编写的用于数据处理和分析的软件库。特别是,它提供了用于处理数字表和时间序列的数据结构和操作。它是三项BSD许可下发布的免费软件。[2]该名称源自术语“ 面板数据 ”,这是数据集的计量经济学术语,其中包括同一个人在多个时间段内的观察结果。[3]
-
导入支持包
import pandas as pd import numpy as np # 设置了seed之后每次生成的随机数据将都是一样的 np.random.seed(0) # 可随便传入一个int值
-
pandas.Series()
Pandas将一维数据封装成一个
pandas.Series()
对象通过代码来说明Series类的用法
# 可以理解为一串带索引的数据 index = np.arange(100,106) s = pd.Series([1, 3, 6, np.nan, 44, 1], index=index) # np.nan差不多就是None print(s) """ 100 1.0 101 3.0 102 6.0 103 NaN 104 44.0 105 1.0 dtype: float64 """ # 如不指定index,会默认生成从0开始的整数索引
-
pandas.DataFrame()
Pandas将二维数据封装成了
pandas.DataFrame()
对象- DataFrame的一种生成方式——通过传入字典
dfdata = pd.DataFrame({ 'key': ['K0', 'K1', 'K2', 'K3'], # 每个元素是一列,key即列属性名;value是列属性值 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'] }) # key A B # 0 K0 A0 B0 # 1 K1 A1 B1 # 2 K2 A2 B2 # 3 K3 A3 B3
- DataFrame的另一种生成方式——传入一个矩阵,以及DataFrame类型数据的处理方式
dates = pd.date_range('20200214', periods=6) df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd']) # index为行索引 # columns为列索引 # 如不指定会生成从0开始整数索引 # print(df) """ a b c d 2020-02-14 -1.252337 0.292209 -0.574282 -1.169555 2020-02-15 -0.690798 -0.336620 -1.114641 0.109090 2020-02-16 -1.050227 -0.934658 1.049743 0.118560 2020-02-17 0.507933 -1.418839 0.479424 -0.935449 2020-02-18 0.468655 0.163571 1.051186 -0.838357 2020-02-19 -0.069228 0.180696 -0.849428 -0.978065 """ # 获得列,每列是一个Series # print(type(df['a'])) # print一列的type # print(df['a']) # print一列的数据 ''' <class 'pandas.core.series.Series'> 2020-02-14 -0.919781 2020-02-15 0.114945 2020-02-16 1.928675 2020-02-17 -1.004000 2020-02-18 1.099467 2020-02-19 1.029294 Freq: D, Name: a, dtype: float64 ''' # print(type(df[:'2020-02-14'])) # print一行的type # print(df[:'2020-02-14']) # print一行的数据 ''' <class 'pandas.core.frame.DataFrame'> a b c d 2020-02-14 0.129921 0.330787 1.224564 1.931845 ''' # print行索引 print(df.index) # DatetimeIndex(['2020-02-14', '2020-02-15', '2020-02-16', '2020-02-17', # '2020-02-18', '2020-02-19'], # dtype='datetime64[ns]', freq='D') # print列索引 print(df.columns) # Index(['a', 'b', 'c', 'd'], dtype='object') # 通过.values可以把pd.DataFrame()格式的数据转成np.array print(type(df.values)) print(df.values) # <class 'numpy.ndarray'> # [[ 0.92548393 0.18265364 0.5358075 -0.84910901] # [ 1.62660144 -0.33015259 -0.75008368 0.94722092] # [-0.83908171 1.11952036 0.08644712 -0.96739122] # [ 1.19504034 -0.49438307 -0.31389145 0.45401724] # [ 0.33769456 0.11381624 -0.86673364 1.73489697] # [-0.33031513 0.09167725 -0.17211572 0.44306859]] # 对pd.DataFrame()中的数据进行统计 print(df.describe()) # a b c d # count 6.000000 6.000000 6.000000 6.000000 # mean 0.332788 0.106238 0.400794 0.011054 # std 1.238534 1.822945 1.426681 0.338564 # min -1.551920 -2.283634 -1.469739 -0.476852 # 25% -0.387510 -1.444339 -0.720901 -0.128311 # 50% 0.685510 0.796483 0.714214 -0.025572 # 75% 1.005481 1.579427 1.388588 0.175207 # max 1.810674 1.678970 2.031968 0.514741 # 对pd.DataFrame()中的数据进行翻转/转置 print(df.T) # 2020-02-14 2020-02-15 2020-02-16 2020-02-17 2020-02-18 2020-02-19 # a 0.037116 -0.429569 0.215592 0.043167 0.817896 0.924043 # b 0.136156 0.209794 -1.753687 -0.725070 1.502126 0.576307 # c 1.251914 -1.965787 -0.052305 1.051349 0.982595 0.939506 # d 0.626040 -0.367166 0.054540 1.529206 -1.221776 -1.038283 # 按行/列的索引排序 # (就是按索引的名称排序,不是按值排序,字符串按字母顺序,数字按大小) print(df.sort_index(axis=1, ascending=False)) # axis=0:按第一个维度(行)索引排序; axis=1:按第二个维度(列)索引排序 # ascending: bool值,是否按升序排列,True为升序,False为倒序 # d c b a # 2020-02-14 2.240893 0.978738 0.400157 1.764052 # 2020-02-15 -0.151357 0.950088 -0.977278 1.867558 # 2020-02-16 1.454274 0.144044 0.410599 -0.103219 # 2020-02-17 0.333674 0.443863 0.121675 0.761038 # 2020-02-18 -0.854096 0.313068 -0.205158 1.494079 # 2020-02-19 -0.742165 0.864436 0.653619 -2.552990 # 按某行某列的值进行排序 print(df.sort_values(by='2020-02-15', axis=1, ascending=False)) # by 传值为行或列的索引名称,注意应该和axis对应 # axis 传值为数据的维度,=0时by应该传列的索引,对行进行排序;=1时传行的索引,对列进行排序 # ascending bool值,是否进行升序,False表示倒序排列
-
参考文献
程序主要来自 Pandas 基本介绍,略有改动
Pandas中的数据形式
猜你喜欢
转载自blog.csdn.net/BBJG_001/article/details/104454953
今日推荐
周排行