千家信息网

Python中的pandas知识点有哪些

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本篇内容主要讲解"Python中的pandas知识点有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python中的pandas知识点有哪些"吧!前言
千家信息网最后更新 2024年11月26日Python中的pandas知识点有哪些

本篇内容主要讲解"Python中的pandas知识点有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python中的pandas知识点有哪些"吧!

前言

pandas 是基于 Numpy 的一种工具,该工具是为解决数据分析任务而创建的,pandas 纳入了大量库和一些标准的数据模型,提供了高效的操作大型数据集所需要的的工具,pandas 提供了大量能使我们快速便捷地处理数据的函数和方法。

一、pandas 操作流程

  1. 表格数据的增删改查;

  2. 实现多表格处理;

  3. 数据清洗操作:缺失值,重复值,异常值,数据标准化,数据转换操作;

  4. 实现 excel 的特殊操作,生成透视表,交叉表;

  5. 完成统计分析。

二、pandas 的创建

1、导入 pandas 库

import pandas as pd

2、表结构数据,构建 Dataframe

columns:列索引 index:行索引 values:元素数据

方式一:

df = pd.DataFrame(

data=[['alex', 20, '男','0831'],['tom', 30, '女', '0830'],],

index=['a','b'], # 可以不写,默认从0开始,也可以直接指定字符进行排序

columns=['name', 'age', 'sex', 'class'],

) # 构建方法

print(df) # 打印数据

name age sex class
a alex 20 男 0831
b tom 30 女 0830

方式二:

df1 = pd.DataFrame(data={'name':['tom', 'alex'], 'age':[18,20], 'sex':['男','女'], 'class':['0831','0831']})

print(df) # 打印数据,没有指定index字符排序时,默认从0开始排序

name age sex class
0 alex 20 男 0831
1 tom 30 女 0830

3、dataframe 的属性

因为 pandas 基于 numpy,因此,numpy 的 ndarray 的属性,dataframe 也同样具有。

  • df.shape # 结构

  • df.ndim # 维度

  • df.size # 数量

  • df.dtypes # 元素的数据类型

  • df.columns # 列索引

  • df.index # 行索引

  • df.values # 元素

三、df 的查找

1、索引某一列值

df1['name'] 一维的切法,返回的是 series

print(df1['name']) # 切一列值的方法

0 tom
1 alex

2、切多列值的方法

print(df1[['name', 'age']])

name age

0 tom 18

1 alex 20

print(type(df1[['name', 'age']])) # series 是一维的类型,只有一个轴

3、索引切的方法

方法一:

print(df[['name', 'age']][:2]) # 不能指定行进行索引

name age

a alex 20

b tom 30

方法二:

索引切的方法: df.loc[行索引名称、条件, 列的索引名称]

print(df.loc['a', 'name'])

alex

df.loc['a', ['name']] # 行或者列,只要有一个为字符串,是一维

df.loc[['a'], ['name']] # 行或者列,两个参数都为列表,是二维

4、条件索引: bool 切片

mask = df['age']>18 # 返回所有大于18岁的同学,返回True, False

mask2 = df['sex'] == '女' # 返回所有女的同学

mask3 = mask & mask2 # 将两个mask进行结合,不能使用and,只能使用 & 逻辑与

print(mask3)

a False

b True

dtype: bool

print(df.loc[mask3, :]) # 利用mask,对数据进行切片

name age sex class

b tom 30 女 0830

5、索引查询: iloc 【行的索引, 列的索引】 # 前闭后开

print(df.iloc[:1, :])

name age sex class

a alex 20 男 0831

四、df增加方法

1、键值对添加列

# df['address'] = ['北京', '上海'] 两种方式,一一对应, 直接等于'北京',则所有数据都会变成北京

df['address'] = '北京'

name age sex class address

a alex 20 男 0831 北京

b tom 30 女 0830 北京

2、append 增加行

df_mini = pd.DataFrame(data = {

'name':['jerry', 'make'],

'age':[15, 18],

'sex':['男', '女'],

'class':['0831', '0770'],

'address':['北京', '河南']

}, index = ['a', 'b'])

df4 = df.append(df_mini)

print(df4)

a alex 20 男 0831 北京

b tom 30 女 0830 北京

a jerry 15 男 0831 北京

b make 18 女 0770 河南

五、删除方法

axis : 删除的行或者列

inplace:是否修改原始表

a = df4.drop(labels=['address', 'class'], axis=1) # 删除列 需要使用一个变量接受

df4.drop(labels=['a'], axis=0, inplace=True)

六、修改

切出指定数据,再进行赋值修改

c = df4.loc[df4['name'] == 'tom', 'class'] = '有问题'

print(c)

name age sex class address

a alex 20 男 0831 北京

b tom 30 女 有问题 北京

a jerry 15 男 0831 北京

b make 18 女 0770 河南

七、统计分析

1、延用了 Numpy 中的 10 个统计方法

min() argmin() max() argmax() std() vat() sum() mean() cumsum() cumprod()

2、pandas 中的方法

df['age'].min() df['age'].max() df['age'].argsort()

3、众数、非空元素、频数

df['age'].mode()

a grade

b grade

dtype: object

df['age'].count()

tom 1

make 1

alex 1

jerry 1

Name: name, dtype: int64

df['age'].value_counts()

name alex

age 20

sex 女

class 0830

address 北京

dtype: object

4、针对 df 类型

df['age'].idxmax(axis=1) # 横向比较

df['age'].idxmax(axis=0) # 纵向比较

name age sex class address

0 alex 15 女 0831 北京

1 jerry 18 男 NaN NaN

2 make 20 NaN NaN NaN

3 tom 30 NaN NaN NaN

5、描述 describe

df['age'].describe()

# age

# count 4.00 非空数目

# mean 20.75 平均值

# std 6.50 标准差

# min 15.00 最小

# 25% 17.25 1/4

# 50% 19.00 2/4

# 75% 22.50 3/4

# max 30.00 最大

df['name'].describe()

# count : 非空数目

# unique: 去重之后有几个值

# top: 众数

# freq: 众数出现的频数

八、Excel 文件的读取

pandas 可以读取多种数据类型,这里介绍下读取 excel 数据的操作方法

pd.read_excel(r'文件路径')

到此,相信大家对"Python中的pandas知识点有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0