wjx-2005-07-01  

Pandas数据处理与分析

Pandas是基于NumPy的一种数据分析工具库。

一、数据结构与基本操作

目前Pandas主要提供两种数据结构:Series是带标签的一维数组;DataFrame是带标签且大小可变的二维数组。

1.1、Series基础

import numpy as np
import pandas as pd
#创建Series对象
s1 = pd.Series([1,3,4,np.nan,6,9])#使用np.nan表示空值
print(s1)

Series作为一维数组的存储单位,拥有两个属性:标签(index)和元素值(values)。

Series对象具有标签,就相当于python中的索引,默认情况下与python中的索引相同,但是可以指定索引。

#创建Series对象,并指定索引为 'ABCD'
s2 = pd.Series(np.arange(4),index=list('ABCD'))
#通过索引来获取对象的值
s2['C']
#运行结果
2

对Series进行算术运算即对Series中的每个数据进行相应的算数运算,但要注意运算后生成一个新的Series对象,元Series对象保持不变。

可以通过切片操作获取Series中特定位置的数据,构成新的Series对象。切片主要有三种方式:

  • 通过标签来实现切片
  • 通过位置索引来切片
  • 通过条件获取元素切片

1.2、DataFrame基础

DataFrame是大小可变、多种类型元素可以混合、具有行列标签的二维数据,拥有index和colums属性

n = np.random.randint(low=0,high=10,size=(5,5))
df = pd.DataFrame(data=n,columns=list('ABCDE'))
print(df)
#运行结果
   A  B  C  D  E
0  4  7  6  0  6
1  1  0  8  1  5
2  1  5  9  6  5
3  1  8  2  4  6
4  7  3  8  2  3

还可以使用字典创建DataFrame对象。

data = {
    "province":['广东','山东','四川','湖北','江苏'],
    "populations":[103332,23234,234545,6456546,12345],
    "city":['广州','济南','成都','武汉','南京']
}
cc = pd.DataFrame(data)
print(cc)
#运行结果
  province  populations city
0       广东       103332   广州
1       山东        23234   济南
2       四川       234545   成都
3       湖北      6456546   武汉
4       江苏        12345   南京

DataFrame对象的相关属性

index属性表示行标签,columns属性表示列标签,dtype属性表示各列的数据类型,ndim属性表示数据维数,values属性表示构成DataFrame对象数据的NumPy数组。

DataFrame对象的整体情况查询

info()方法查询DataFrame对象的整体情况,包括行列数量、索引、列类型、内存占用情况等。head(n)方法查询最前面n行数据,默认为5行。tail(n)方法查询末尾n行数据,默认为5行。

设置DataFrame对象的行列标签

可以使用set_index生成新的DataFrame对象,原对象保持不变。

可以通过columns属性值来改变列标签。

获取DataFrame对象的行列标签

DataFrame对象的index属性返回行标签对象。可以从该对象获得行标签构成的列表。

可以通过to_list方法将其转换成列表。

还可以根据条件获取标签信息。

DataFrame对象的切片方式

  • 通过列名和行号获取
  • 通过布尔索引获取
  • 通过行列标签切片
  • 通过行列序号切片

二、文件与数据库中存取DataFrame对象

1、csv文件中存取DataFrame对象

2、Excel文件中存取DataFrame对象

3、数据库中存取DataFrame对象

三、常用函数与方法

1、用drop()删除指定的行或列

2、用append()添加元素

3、用unique()去除重复元素

4、使用Series.map()实现数据替换

5、使用apply()将指定函数应用于数据

6、用applymap()将指定函数应用于元素

......

四、DataFrame对象的数据清洗与处理

获得DataFrame对象后,数据清洗等预处理是数据分析前最重要一环。

数据清洗主要是删除重复值、处理缺失值、数据格式规范化等。

其实有很多方法,大家可以自行在网上查询。

五、时间处理

5.1、Python标准库中的时间处理

Python标准库中的calendar、datatime和time三个模块可以用来处理时间数据。

calendar模块中的类和函数主要用于处理与日历相关的数据。time模块中的类和函数主要用于处理与时间戳相关的数据。datatime模块提供了处理日期与时间的类和函数。

datatime模块包含date、time、datetime、timedelta、tzinfo和timezone六个类。

详细方法参考官方在线文档。

5.2、Pandas中的时间数据处理

Pandas中的Timestamp和Timedelta两个类在处理时间方面较好。

详细方法见官网。

posted on 2024-01-24 15:03  星辰与Python  阅读(17)  评论(0编辑  收藏  举报