大数据知识体系
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
  • JVM

    • JVM 架构
    • JVM 类加载机制
    • JVM 运行时数据区
    • JVM 垃圾回收机制
    • JVM 性能监控与调优
    • JVM 常见错误
  • Java

    • Java基础

      • Java 基础知识
      • Java 基础 - 枚举类
      • Java 基础 - 异常处理
      • Java 基础 - 泛型
      • Java 基础 - 反射
      • Java 基础 - 代理模式
      • Java 基础 - 注解
    • Java集合

    • Java并发编程

    • Java 开发规范
  • Scala

    • Scala 概述
  • Python

    • Numpy

      • 初识 Numpy
      • ndarray 的创建方式
      • NumPy 的数据类型
      • NumPy 数组计算
      • 拷贝
      • 索引和切片
      • 数学和统计方法
      • 数组形状变换
      • 通用函数
      • 排序
      • 搜索和计数
      • 线性代数
      • 伪随机数生成
      • 广播
      • 文件输入和输出
    • Pandas

      • 初识 Pandas
      • 认识 Series 和 DataFrame
      • Series 和 DataFrame 增删改查
      • Index对象增删改查
      • 普通列和行Index相互转化
      • 快速查看整体信息
      • 数值运算
      • 合并数据集
      • 数值统计与聚合
      • 分组聚合
      • 分类类型
      • 排序和排名
      • 时间序列
      • 文件输入与输出
      • 缺失值处理
      • 字符串处理
      • pandas sql
      • 其它
        • 重新索引
          • Series 上的 reindex
          • DataFrame 上的 reindex
        • 唯一值以及成员资格
        • 移除重复值
        • 轴命名索引
        • 判断正负号
  • 语言基础
  • Python
  • Pandas
Will
2022-08-04
目录

其它

# 重新索引

  • reindex() 只是根据 index 改变各个元素(value)的排列顺序,而不是改变元素(value)与 index 的对应关系

    参数说明

    • idnex:用作索引的序列
    • method: 填充方式
    • fill_value:缺失值的替代值
    • limit:向前或向后填充时的最大填充量
    • tolerance:向前或者向后填充时,填充不准确匹配项的最大间距
    • level:在 MultiIndex 的指定级别上匹配简单索引,否则选取子集
    • copy:默认为 True,无论如何都复制;如果为 False,则新旧相等就不复制
import numpy as np
import pandas as pd
from pandas import Series
from pandas import DataFrame
1
2
3
4

# Series 上的 reindex

s = Series([1, 2, 3, 4, 5, 6], index=['a', 'b', 'c', 'd', 'e', 'f'])
s
1
2
a    1
b    2
c    3
d    4
e    5
f    6
dtype: int64
s2 = s.reindex(['f', 'e', 'd', 'c', 'b', 'a'])
s2
1
2
f    6
e    5
d    4
c    3
b    2
a    1
dtype: int64

# DataFrame 上的 reindex


1

1

# 唯一值以及成员资格

# 移除重复值

df.duplicated()返回一个布尔型 Series,表示各行是否有重复行(是否重复出现前面的行)

df.drop_duplicates()返回一个去掉重复行的 DataFrame

以上两个方法默认判断全部列,也可以自己指定判断是否重复的列。他们默认保留的是第一个出现的值组合,传入 keep=‘last’则保留最后一个

df = DataFrame([[1,2], [2,3], [3,4], [2,4], [3,5], [2,3], [2,4]], columns=['A', 'B'])
df
1
2
A B
0 1 2
1 2 3
2 3 4
3 2 4
4 3 5
5 2 3
6 2 4
df.duplicated() # 默认判断所有行是否重复
1
0    False
1    False
2    False
3    False
4    False
5     True
6     True
dtype: bool
df.drop_duplicates()
1
A B
0 1 2
1 2 3
2 3 4
3 2 4
4 3 5
df.duplicated('A')
1
0    False
1    False
2    False
3     True
4     True
5     True
6     True
dtype: bool
df.drop_duplicates('A')
1
A B
0 1 2
1 2 3
2 3 4
  • map()
  • apply()
  • apply_map()
  • replace()
  • repalce(1, -1) 可以替换一个值
  • repalce([1, 2], -1) 可以一次替换多个值
  • repalce([1,2], [-1, -2]) 一次替换多个值,每个被替换的值都不一样
  • repalce({1:-1, 2:-2}) 同上

# 轴命名索引

df = DataFrame(np.arange(9).reshape(3, 3), index=['a', 'b', 'c'], columns=['bj', 'tj', 'sh'])
df
1
2
bj tj sh
a 0 1 2
b 3 4 5
c 6 7 8
func = lambda x:x.upper()
df.index.map(func)
1
2
Index(['A', 'B', 'C'], dtype='object')
df
1
bj tj sh
a 0 1 2
b 3 4 5
c 6 7 8
# 简单用法
df.rename(index=str.title, columns=str.upper)
1
2
BJ TJ SH
A 0 1 2
B 3 4 5
C 6 7 8
df
1
bj tj sh
a 0 1 2
b 3 4 5
c 6 7 8
# 结合字典
df.rename(index={'a':'AAA', 'b':'BBB', 'c':'CCC'}, columns={'bj':'bj1', 'tj':'tj1', 'sh':'sh1'})
1
2
bj1 tj1 sh1
AAA 0 1 2
BBB 3 4 5
CCC 6 7 8
df
1
bj tj sh
a 0 1 2
b 3 4 5
c 6 7 8

# 判断正负号

df = DataFrame(np.random.randn(5, 5))
df
1
2
0 1 2 3 4
0 0.727472 -0.180341 -2.063163 0.662542 0.154078
1 1.225638 -1.441499 1.261144 0.707968 -0.079686
2 0.139142 -0.410972 1.070285 1.213725 -0.779184
3 2.482763 -1.469214 1.169715 0.399087 -0.417736
4 -1.140476 1.138731 0.305860 0.062746 -0.402571
np.sign(df)
1
0 1 2 3 4
0 1.0 -1.0 -1.0 1.0 1.0
1 1.0 -1.0 1.0 1.0 -1.0
2 1.0 -1.0 1.0 1.0 -1.0
3 1.0 -1.0 1.0 1.0 -1.0
4 -1.0 1.0 1.0 1.0 -1.0
方法说明
append连接另一个Index对象,产生一个新的Index
difference计算差集,并得到一个Index
intersection计算交集
union计算并集
isin计算各值是否包含在参数集合中,返回一个布尔数组
delete删除索引i处的元素,并得到新的Index
drop删除传入的值,并得到新的Index
insert将元素插入到索引i处,并得到新的Index
is_monotonic当各元素均大于等于前一个元素时,返回True
is_unique当Index没有重复值时,返回True
unique计算Index中唯一值得数组
上次更新: 2023/11/01, 03:11:44

← pandas sql

Theme by Vdoing | Copyright © 2022-2023 Will 蜀ICP备2022002285号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式