Python Pandas

Pandas是Python中用于数据分析的重要库,它基于NumPy并提供了Series和DataFrame两种核心数据结构。Series是一维带标签的数据,而DataFrame是二维表格型数据,两者支持丰富的数据操作。这篇博客详细介绍了如何创建、查看、清洗和预处理DataFrame,包括数据的访问、修改、缺失值处理、统计分析等,以及数据筛选、汇总等操作,是Python数据处理的实用指南。
摘要由CSDN通过智能技术生成

是什么

Pandas 是基于 NumPy 的一个开源 Python 库,它被广泛用于快速分析数据,以及数据清洗和准备等工作。它的名字来源是由“ Panel data”(面板数据,一个计量经济学名词)两个单词拼成的。简单地说,你可以把 Pandas 看作是 Python 版的 Excel。用Python处理数据就像使用Exel或SQL一样简单方便。

Pandas数据结构

Pandas主要采用Series和DataFrame两种数据结构。Series是一种类似一维数据的数据结构,由数据(values)及索引(indexs)组成,而DataFrame是一个表格型的数据结构,它有一组序列,每列的数据可以为不同类型(NumPy数据组中数据要求为相同类型),它既有行索引,也有列索引

Series 

Series是一维带标签的数组,数组里可以放任意的数据(整数,浮点数,字符串, Python Object)。Series的标签索引(它位置索引自然保留)其基本的创建函数是:
<center>s = pd.Series(data, index=index

其中index是一个列表,用来作为数据的标签。
data的类型可以是Python字典、列表等。

Series 索引

s.values       #显示s1的所有值 out : array([ 1,  3,  6, -1,  2,  8], dtype=int64)
s.index        #显示s1的索引(位置索引或标签索引) out : RangeIndex(start=0, stop=6, step=1)
s1 = pd.Series([1, 3, 6, -1, 2, 8], index=['a', 'b', 'c', 'd', 'e', 'f'])  #定义标签索引
s1

数据访问


# 访问Series中数据的两种方法
import pandas as pd
s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五'])
print(s1[0])             #通过元素储存位置访问
print(s1['张三'])         #通过指定索引访问
# 结果均为 75

数据修改

可以直接通过赋值的方法修改Series中的对应值。

# 修改Series中的值
import pandas as pd
s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五'])
s1['张三'] = 60         #通过指定索引访问
s1[1] = 60            #通过元素储存位置访问
print(s1)

数据修改
可以直接通过赋值的方法修改Series中的对应值。

算术运算
Pandas会根据索引index索引对相应数据进行计算。如代码所示,可以直接对Series结构进行加减乘除运算符,当出现index不匹配的情况时会输出NaN。

import pandas as pd
sr1 = pd.Series([1, 2, 3, 4],['a','b','c','d'])
sr2 = pd.Series([1, 5, 8, 9],['a','c','e','f'])
sr2 - sr1


 Series数据分析


(1) 切片操作
数据切片的概念源于Numpy数组,Series对象使用类似NumPy中ndarray的数据访问方法实现切片操作。

#Series的切片操作
import pandas as pd
s1 = pd.Series([ 75, 90, 61, 59],index=['a', 'b', 'c', 'd']) 
s1[1:3]

(2) 数据缺失处理
Pandas工具包提供了相应处理方法可以轻松实现缺失数据的处理,如下表:


# Series填充缺失值
import pandas as pd
import numpy as np
s1 = pd.Series([ 75, 90, np.NaN, 59],index=['a', 'b', 'c', 'd']) 
# 查看缺失值
s1.isnull() 
# a    False
# b    False
# c     True
# d    False
# 删除缺失值
s1.dropna()
# a    75.0
# b    90.0
# d    59.0
# 填充缺失值
s1.fillna(0)
# a    75.0
# b    90.0
# c     0.0
# d    59.0

(3) 统计分析
Pandas数据分析库提供了强大的数据统计功能,因此通过Series可以非常方便进行数据统计分析。下面是一些常用的Series描述性统计方法。

DataFrame
  

DataFrame除了索引有位置索引也有标签索引,而且其数据组织方式与MySQL的表极为相似,除了形式相似,很多操作也类似,这就给操作DataFrame带来极大方便。这些是DataFrame特色的一小部分,它还有比数据库表更强大的功能,如强大统计、可视化等等。
  DataFrame有几个要素:index、columns、values等,columns就像数据库表的列表,index是索引,values就是值。DataFrame的基本格式是:
<center>df = pd.DataFrame(data, index=index, columns=columns)

其中 index是行标签, columns是列标签、
data可以是由一维 numpy数组,list, Series构成的字典、二维 numpy数组、一个 Series、另外的 DataFrame对象

复制 
####自动生成一个3行4列的DataFrame,并定义其索引(如果不指定,缺省为整数索引)####及列名


df = pd.DataFrame(np.arange(12).reshape((3,4)), columns=['a1', 'a2', 'a3', 'a4'], index=['a', 'b', 'c'])
df

获取一些 DataFrame 结构的属性

df.index #显示索引(有标签索引则显示标签索引,否则显示位置索引)

df.columns ##显示列名

df.values ##显示值

Series 和DataFrame关系

  • DataFrame 是由多个 Series 组成的。无论是行还是列,单独拆分出来都可以视为一个 Series
  • 在 DataFrame 中,每一列是一个 Series 对象,它共享 DataFrame 的行索引。同样地,如果按行操作 DataFrame,每一行也可以看作是一个 Series 对象,它共享 DataFrame 的列索引。

 基本操作

 创建

生成DataFrame

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值