pandas深化学习之重置索引、选择

系列文章目录

pandas深化学习之索引
pandas深化学习之排序重塑
pandas深化学习之缺失值处理
pandas深化学习之字符串处理
pandas深化学习之数学运算
pandas深化学习之日期时间处理



前言

本文主要记录pandas中缺失值异常值相关的api使用:
通过对真实数据的一系列操作帮助我们熟练掌握相关api的使用。


提示:以下是本篇文章正文内容,下面案例可供参考

1.引入库

代码如下:

import pandas as pd
import numpy as np

import warnings
warnings.filterwarnings('ignore')

2.造数据

代码如下:

df = pd.DataFrame(np.random.randint(1,100,(10,4)))

结果
在这里插入图片描述


3.数据基本信息查询

我们在理解DataFrame时要类比Excel表格,可以帮助我们更清晰的分析

在DataFrame中,我更倾向于叫一行为样本或者记录,叫一列为特征或者属性

df.info()

结果

在这里插入图片描述

4.重置索引及选择相关api

  • 给列标签添加前缀&后缀

前缀

df.add_prefix('A_')

结果
在这里插入图片描述
后缀

df.add_suffix('_0')

结果

在这里插入图片描述

  • 使用指定的join方法将两个对象在其轴上对齐。
df.align(pd.DataFrame(np.random.random((10,2))),join='inner')

结果
在这里插入图片描述

  • 删除指定行或者指定列的数据
df.drop( labels=None, 
		axis=0, 
		index=None, 
		columns=None, 
		level=None, 
		inplace=False, 
		errors='raise', )

labels + axis = index / columns

df.drop(0,axis=1)

结果

在这里插入图片描述

df.drop(columns=[0])

在这里插入图片描述

  • 删除重复值
df.drop_duplicates()

结果
在这里插入图片描述

  • 判断某一行是否重复
df.duplicated()

结果

在这里插入图片描述

  • 判断两个DataFrame是否相等
df.equals(np.random.rand(10,2))
# 结果
False
df.equals(df.copy())
# 结果
True
  • 最大值的索引

每列最大值的行索引

df.idxmax()

结果
在这里插入图片描述
每行最大值的列索引

df.idxmax(axis=1)

结果

在这里插入图片描述

最小值,用法同idxmax

df.idxmin()

结果

在这里插入图片描述

  • 获取指定索引的行或者列数据,当传入的索引不在原数据中,则填充NaN
import random
df.reindex(random.sample(df.index.to_list(),5))

结果

sub

  • 选择给定DataFrame索引索引对应的值,如果索引不存在,则填充NaN
df.reindex_like(df.reindex(random.sample(df.index.to_list(),5)))

结果
在这里插入图片描述

  • 重命名索引
df.rename(columns=lambda x : 'A_%02d'%x )

结果

在这里插入图片描述

rename参数

df.rename(
    mapper=None,    # 函数
    index=None,
    columns=None,
    axis=None,
    copy=True,
    inplace=False,
    level=None,
    errors='ignore',
)

index = axis + mapper
columns = axis + mapper

  • 给索引命名
df.rename_axis(axis=0,mapper='index')

结果
在这里插入图片描述

df.rename_axis(
    mapper=None,    # 单级索引传单个值,多级索引传列表
    index=None,
    columns=None,
    axis=None,
    copy=True,
    inplace=False,
)

index = axis + mapper
columns = axis + mapper

  • 重采样

从原DataFrame中随机取n个样本(行)

df.sample(n=3)

结果

在这里插入图片描述

  • 索引重命名
df.set_axis(['A_%s'%x for x in df.index])

结果
在这里插入图片描述

df.set_axis(['A_%s'%x for x in df.columns],axis=1)

在这里插入图片描述

.

  • 把指定列作为索引
df.set_index(0)

结果

在这里插入图片描述
可以传入多级索引

df.set_index([0,pd.Index(np.linspace(1,len(df),10))])

结果

在这里插入图片描述

  • 选择指定索引的数据
df.take([0,3,5])

结果

在这里插入图片描述

df.take([0,3],axis=1)

结果

在这里插入图片描述

  • 删除指定行或者列的数据

before 删除指定axis之前的

after 删除指定axis之后的

df.truncate(before=3,after=6,axis=0)

结果

在这里插入图片描述

总结

代码的功底都是通过不断的练习一步步积累起来的,和我一起学pandas吧!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值