首页 > 其他分享 >Pandas数据处理

Pandas数据处理

时间:2024-01-24 15:13:35浏览次数:21  
标签:对象 Series DataFrame 标签 数据处理 Pandas 属性

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两个类在处理时间方面较好。

详细方法见官网。

标签:对象,Series,DataFrame,标签,数据处理,Pandas,属性
From: https://www.cnblogs.com/wjx-2005-07-01/p/17984715

相关文章

  • 玩转数据处理利器:学会使用 YAML 文件轻松处理数据
    霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。YAML文件处理什......
  • 玩转数据处理利器:学会使用 YAML 文件轻松处理数据
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。YAML文件处理什么是YAML文......
  • 玩转数据处理利器:学会使用 YAML 文件轻松处理数据
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。YAML文件处理什么是Y......
  • NumPy数据处理基础
    Panadas数据处理基础一、数据结构NumPy中主要有多维数组和矩阵结构。1.1、利用array()函数创建数组numpy.array(object,dtype=None,*,copy=True,order='K',subok=False,ndmin=0,like=None)----object参数来创建数组类型的对象----dtype参数表示数组元素的类型----copy用......
  • 【LeetCode 2494. 合并在同一个大厅重叠的活动】[MySQL 用户变量/Pandas]面向过程编程
    目录题目地址MySQL代码等效pandas代码题目地址https://leetcode.cn/problems/merge-overlapping-events-in-the-same-hall/MySQL代码#WriteyourMySQLquerystatementbelowwitht2as(select*#----只需要改动这里的逻辑,其他不要动。注意里面的语句是“顺序......
  • 【LeetCode1747. 应该被禁止的 Leetflex 账户】[MySQL 用户变量/Pandas]面向过程编程;
    目录题目地址MySQL代码等效pandas代码题目地址https://leetcode.cn/problems/leetflex-banned-accounts/description/MySQL代码witht1as(selectaccount_id,ip_address,loginastick,"login"asmytypefromLogInfounionallselectaccount_id,ip......
  • 【LeetCode 2701. 连续递增交易】[MySQL 用户变量/Pandas]面向过程编程得到严格递增连
    目录题目地址MySQL代码等效pandas代码题目地址https://leetcode.cn/problems/consecutive-transactions-with-increasing-amounts/MySQL代码#WriteyourMySQLquerystatementbelowwitht1as(select*#--------------------------只需要改动这里的逻辑,其他......
  • 【Leetcode 2474. 购买量严格增加的客户】[MySQL 用户变量/Pandas]面向过程编程解决严
    目录题目地址MySQL代码等效pandas代码题目地址https://leetcode.cn/problems/customers-with-strictly-increasing-purchases/description/MySQL代码#WriteyourMySQLquerystatementbelowwitht1as(selectcustomer_id,year(order_date)asmy_year,sum(price)......
  • Java开发之Java8 新特性--流式数据处理学习
    一.流式处理简介在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个新的List返回,那么在java8之前,我们需......
  • Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.to_excel之前把这一列转换成字符串,或者你在Excel上设置......