pandas模块学习笔记

1. 前言

虽然很早就接触过pandas模块,却因为深度依赖numpy的原因,从没有认真对待它。今天无意中发现,pandas最初是作为金融数据分析工具而开发出来,有些概念借鉴了R语言。我距离金融圈非常遥远,难怪以前一直找不到使用它的必要性。现在我知道,pandas为时间序列分析提供了很好的支持,这一点也许可以给我的工作提供方便。

模块学习的第一步,自然是安装。必须要感谢pip,自从py2.7.9内置pip之后,世界变得如此美好!

pip install pandas
导入,测试一下模块是否可用。

import pandas as pd

2. 数据结构

网上检索了一下(还是没有认真去读pandas的document),pandas大致有以下几个核心的数据结构:

(1) Series

Series可以理解为一维数组,数组元素可以是不同的类型,甚至是对象——类似python的list对象。不过,Series可以自行定义索引,从这个角度看,又类似python的dict对象。

a = pd.Series()
b = pd.Series([2,5,8])
c = pd.Series([3,'x',b])
d = pd.Series({'name':'xufive','age':50})

Series的方法令人眼花缭乱,简单尝试了一下add,原以为是插入新的元素,结果却是对每一个元素做add,这和numpy.array的广播函数是完全一样的。

>>> b = pd.Series([2,5,8])
>>> b
0    2
1    5
2    8
dtype: int64
>>> b = b.add(8)
>>> b
0    10
1    13
2    16
dtype: int64
>>> b = b.mod(3)
>>> b
0    1
1    1
2    1
dtype: int64阿斯顿

Series有index, values, name, index.name等属性,例如:

>>> b = pd.Series([2,5,8])
>>> b.values
array([2, 5, 8], dtype=int64)
>>> b.index
RangeIndex(start=0, stop=3, step=1)
(2) DataFrame

DataFrame的概念来自于R语言,可视作为Series的容器(container)。DataFrame是表格型数据,既有行索引又有列索引,每列数据可以为不同类型数据(数值、字符串、布尔型值)。

>>> import numpy as np
>>> import pandas as pd
>>> pd.DataFrame({'a':[1,2],'b':[2,3],'c':[3,4],'d':[4,5]})
   a  b  c  d
0  1  2  3  4
1  2  3  4  5
>>> pd.DataFrame(np.array([[1,2,3,4],[3,4,5,6]]),index=['one','two'])
     0  1  2  3
one  1  2  3  4
two  3  4  5  6
>>> pd.DataFrame([pd.Series([11,12,13,14]),pd.Series([21,22,23,24])])
    0   1   2   3
0  11  12  13  14
1  21  22  23  24
DataFrame对象同样有一堆方法来实现分割、查找、替换、转换等功能。在我学习这些细节的时候,深深加剧了我对于R语言的恐惧。为了不给各位看官留下心理阴影,这里就不详细描述了。如有兴趣深入研究,请参考《pandas数据结构》。

3. 时间序列

前言中提到, pandas为时间序列分析提供了很好的支持,那么,我们如何构建一个时间序列的数据结构呢?

>>> index = pd.date_range('1/10/2018', periods=5)
>>> pd.DataFrame(np.random.randn(5, 3), index=index, columns=list('ABC'))
                   A         B         C
2018-01-10 -1.631258 -0.568379  0.319282
2018-01-11 -0.708094  1.107151  1.364287
2018-01-12  0.649978 -0.494478  1.076287
2018-01-13  0.079650 -1.634735  0.794655
2018-01-14  0.330134  0.890559  0.735603






  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这篇笔记主要介绍了Pandas模块的基本操作和使用方法。Pandas是Python中一个用于数据分析和处理的常用库,提供了高效的数据结构和数据分析工具,是进行数据处理和数据挖掘的重要工具之一。 一、Pandas数据结构 Pandas主要有两种数据结构:Series和DataFrame。 1. Series Series是一种类似于一维数组的对象,由一组数据和一组与之相关的标签(即索引)组成。Series的创建方式如下: ```python import pandas as pd # 通过列表创建Series s = pd.Series([1, 3, 5, np.nan, 6, 8]) # 通过字典创建Series s = pd.Series({'a': 1, 'b': 2, 'c': 3}) ``` 2. DataFrame DataFrame是一种二维表格数据结构,由一组数据和一组行索引和列索引组成。DataFrame的创建方式有很多种,最常用的是通过字典创建。例如: ```python import pandas as pd data = {'name': ['Tom', 'Jerry', 'Mike'], 'age': [18, 20, 22], 'gender': ['M', 'M', 'F']} df = pd.DataFrame(data) ``` 二、Pandas的基本操作 1. 数据读取 Pandas可以读取多种格式的数据文件,如CSV、Excel、SQL等。常用的读取CSV文件的方式如下: ```python import pandas as pd df = pd.read_csv('data.csv') ``` 2. 数据预处理 数据预处理是数据挖掘中非常重要的一部分,Pandas提供了很多方便的函数和方法来进行数据清洗和转换。常用的数据预处理函数和方法有: - 处理缺失值 ```python # 判断是否存在缺失值 df.isnull() # 删除缺失值 df.dropna() # 填充缺失值 df.fillna(value) ``` - 处理重复值 ```python # 删除重复值 df.drop_duplicates() ``` - 数据转换 ```python # 数据类型转换 df.astype() # 数据替换 df.replace() ``` 3. 数据分析 Pandas提供了各种数据分析和处理的方法和函数,常用的包括: - 统计函数 ```python # 计算平均值 df.mean() # 计算标准差 df.std() # 计算最大值和最小值 df.max(), df.min() ``` - 排序 ```python # 按照某列排序 df.sort_values(by='column_name') ``` - 数据聚合 ```python # 对某列数据进行分组求和 df.groupby('column_name').sum() ``` 以上是Pandas模块的基础内容,还有很多高级用法和技巧需要进一步学习和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天元浪子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值