Pandas技巧分享之创建测试数据

 更新时间:2023年07月04日 09:14:42   作者:databook  
学习pandas的过程中,为了尝试pandas提供的各类功能强大的函数,常常需要花费很多时间去创造测试数据,本篇介绍了一些快速创建测试数据的方法,需要的可以参考一下

学习pandas的过程中,为了尝试pandas提供的各类功能强大的函数,常常需要花费很多时间去创造测试数据。

pandas中,快速创建测试数据可以更快的评估 pandas 函数。

通过生成一组测试数据,可以评估例如 read_csvread_excelgroupby等函数,以确保这些函数在处理不同数据格式和结构时都能正常工作。

本篇介绍一些快速创建测试数据的方法,提高学习pandas的效率。

1. 一般方法

一般创建测试数据的有两种:

  • 一种是直接创建每行每列的数据
  • 用 numpy 随机生成二维数组

1.1. 直接创建数据

这种方式之前的视频中已经多次使用,直接创建数据虽然麻烦,但好处是每个数据都可控,不论是数据类型还是值都高度可控。

import pandas as pd
df = pd.DataFrame(
    {
        "数学": [100, 88, 94, 76, 84],
        "语文": [98, 80, 86, 76, 90],
        "英语": [95, 91, 86, 95, 83],
    },
    index=["小红", "小明", "小汪", "小李", "小张"],
)
df

1.2. 随机二维数组

随机生成二维数组需要用到numpy库,通过 numpy生成随机二维数据,然后将其转换为pandasDataFrame

比如,下面生成一个3行4列的随机数据:

pd.DataFrame(np.random.rand(3, 4))

上面的数据是随机的,每次运行产生的结果会不一样。

随机创建数据时,也可以设置索引和列名。

pd.DataFrame(
    np.random.rand(3, 4),
    index=["row1", "row2", "row3"],
    columns=["col1", "col2", "col3", "col4"],
)

2. 特殊技巧

上面介绍随机生成数据的方法只能生成浮点型数据,而且索引和列名都只能是默认的自增数字,数据的多样性不够。

下面介绍pandas自身提供的一些随机生成数据方法,可以生成不同类型的随机数据。

2.1. makeDataFrame

makeDataFrame() 方法会随机创建一个 30x4 的数据集。

df = pd.util.testing.makeDataFrame()
print(df.shape)
df.head()

索引是随机字符串。

2.2. makeMissingDataFrame

makeMissingDataFrame() 方法会随机创建一个 30x4 包含缺失值的数据集,缺失值的位置也是随机的。

df = pd.util.testing.makeMissingDataframe()
print(df.shape)
df.head()

2.3. makeTimeDataFrame

makeTimeDataFrame() 方法会随机创建一个 30x4 包含的数据集,索引是自增的日期。

df = pd.util.testing.makeTimeDataFrame()
print(df.shape)
df.head()

2.4. makeMixedDataFrame

makeMixedDataFrame()方法会随机创建一个 5x4的数据集,其中列的类型是多样的,有字符串,日期和数值。

df = pd.util.testing.makeMixedDataFrame()
print(df.shape)
df

3. 补充

上面介绍的方法生成的数据集不大,如果需要生成数据量较大的数据集的话,可以循环生成DataFrame,然后再拼接在一起。

上面介绍的方法,每次生成的数据集的值是随机的,不用担心拼接后全是重复的数据。

此外,除了上面介绍的方法之外,pd.util.testing 还有其他一些创建数据的方法,欢迎大家去探索,使用。

到此这篇关于Pandas技巧分享之创建测试数据的文章就介绍到这了,更多相关Pandas创建测试数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python如何生成便签图片详解

    利用Python如何生成便签图片详解

    python现在火热的程度相信不用过多介绍了,下面这篇文章主要给大家介绍了关于利用Python如何生成便签图片的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • YOLOv5改进之添加CBAM注意力机制的方法

    YOLOv5改进之添加CBAM注意力机制的方法

    注意力机制最先被用在NLP领域,Attention就是为了让模型认识到数据中哪一部分是最重要的,为它分配更大的权重,获得更多的注意力在一些特征上,让模型表现更好,这篇文章主要给大家介绍了关于YOLOv5改进之添加CBAM注意力机制的相关资料,需要的朋友可以参考下
    2022-11-11
  • Python实现word2Vec model过程解析

    Python实现word2Vec model过程解析

    这篇文章主要介绍了Python实现word2Vec model过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Macbook air m1安装python/anaconda全过程(图文)

    Macbook air m1安装python/anaconda全过程(图文)

    这篇文章主要介绍了Macbook air m1安装python/anaconda全过程(图文),文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 运筹学-Python实现图论与最短距离

    运筹学-Python实现图论与最短距离

    需要求解任意两个节点之间的最短距离,使用 Floyd 算法,只要求解单源最短路径问题,有负权边时使用 Bellman-Ford 算法,没有负权边时使用 Dijkstra 算法,本节我们只讨论Dijkstra 算法,需要的朋友可以参考一下
    2022-01-01
  • Python批量生成字幕图片的方法详解

    Python批量生成字幕图片的方法详解

    这篇文章主要为大家详细介绍了如何利用Python语言实现批量生成字幕图片用于视频剪辑,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Windows环境下python环境安装使用图文教程

    Windows环境下python环境安装使用图文教程

    这篇文章主要为大家详细介绍了Windows环境下python安装使用图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python使用Rich type和TinyDB构建联系人通讯录

    Python使用Rich type和TinyDB构建联系人通讯录

    这篇文章主要为大家介绍了Python使用Rich type和TinyDB构建联系人通讯录应用程序,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • python+pytest接口自动化之token关联登录的实现

    python+pytest接口自动化之token关联登录的实现

    公司某管理后台系统,登录后返回token,接着去请求其他接口时请求头中都需要加上这个token,否则提示请先登录,今天通过本文给大家介绍下python+pytest接口自动化之token关联登录的实现,感兴趣的朋友一起看看吧
    2022-04-04
  • Python蒙特卡洛算法实现排列组合

    Python蒙特卡洛算法实现排列组合

    排列组合是数学中的基本概念,也是编程中常见的问题之一,本文主要介绍了Python蒙特卡洛算法实现排列组合,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论