【pandas小技巧】--创建测试数据

pandas,技巧,创建,测试数据 · 浏览次数 : 70

小编点评

**快速创建测试数据的方法** **1. 使用 numpy 生成随机数据** ```python import pandas as pddf # 创建一个包含 10 行和 5 列的随机数据框 data = pd.DataFrame(np.random.rand(10, 5)) # 打印数据框大小 print(data.shape) ``` **2. 使用 pandas 本身提供的方法创建数据** * `pd.util.testing.makeDataFrame()`:随机创建一个 30x4 的数据集。 * `pd.util.testing.makeMissingDataframe()`:随机创建一个 30x4 包含缺失值的数据集。 * `pd.util.testing.makeTimeDataFrame()`:随机创建一个 30x4 包含数据的时间戳的数据集。 * `pd.util.testing.makeMixedDataFrame()`:随机创建一个 5x4 数据集,其中列的类型是多样的,有字符串,日期和数值。 **3. 使用循环生成数据** ```python import pandas as pddf # 创建一个包含 1000 行和 10 列的随机数据框 data = pd.DataFrame(np.random.rand(1000, 10)) # 打印数据框大小 print(data.shape) ``` **补充** 除了上述方法之外,还有一些其他可以用于快速创建测试数据的方法,例如: * 使用 `pandas.read_csv()` 和 `pandas.read_excel()` 读取 CSV 和 Excel 文件。 * 使用 `np.random.rand()` 创建随机数据。 * 使用 `pandas.DataFrame.from_dict()` 创建从字典中创建数据框。

正文

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

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

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

1. 一般方法

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

  1. 一种是直接创建每行每列的数据
  2. 用 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

image.png

1.2. 随机二维数组

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

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

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

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

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

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

image.png

2. 特殊技巧

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

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

2.1. makeDataFrame

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

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

image.png
索引是随机字符串。

2.2. makeMissingDataFrame

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

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

image.png

2.3. makeTimeDataFrame

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

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

image.png

2.4. makeMixedDataFrame

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

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

image.png

3. 补充

上面介绍的方法生成的数据集不大,如果需要生成数据量较大的数据集的话,可以循环生成DataFrame,然后再拼接在一起。
上面介绍的方法,每次生成的数据集的值是随机的,不用担心拼接后全是重复的数据。

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

与【pandas小技巧】--创建测试数据相似的内容:

【pandas小技巧】--创建测试数据

学习`pandas`的过程中,为了尝试`pandas`提供的各类功能强大的函数,常常需要花费很多时间去创造测试数据。 在`pandas`中,快速创建测试数据可以更快的评估 `pandas` 函数。通过生成一组测试数据,可以评估例如 `read_csv`、`read_excel`、`groupby`等

【pandas小技巧】--目录(完结)

`pandas`小技巧系列是介绍的是使用`pandas`分析数据时,最常用的一些操作技巧。 具体包括: 1. [创建测试数据](https://www.cnblogs.com/wang_yb/p/17552748.html) 学习pandas的过程中,为了尝试pandas提供的各类功能强大的函数,常

【pandas小技巧】--日期相关处理

日期处理相关内容之前`pandas基础`系列中有一篇专门介绍过,本篇补充两个常用的技巧。 # 1. 多列合并为日期 当收集来的数据中,年月日等信息分散在多个列时,往往需要先合并成日期类型,然后才能做分析处理。合并多列转换为日期类型,可以直接用 `to_datetime`函数来处理: ```pytho

【pandas小技巧】--数据转置

所谓**数据转置**,就是是将原始数据表格沿着对角线翻折,使原来的行变成新的列,原来的列变成新的行,从而更方便地进行数据分析和处理。 `pandas`中`DataFrame`的转置非常简单,每个`DataFrame`对象都有一个`T`属性,通过这个属性就能得到转置之后的`DataFrame`。下面介

【pandas小技巧】--统计值作为新列

这次介绍的小技巧不是统计,而是把统计结果作为**新列**和原来的数据放在一起。`pandas`的各种统计功能之前已经介绍了不少,但是每次都是统计结果归统计结果,原始数据归原始数据,没有把它们合并在一个数据集中来观察。 下面通过两个场景示例来演示如果把统计值作为新列的数据。 # 1. 成绩统计的场景

【pandas小技巧】--category类型补充

`category`类型在**pandas基础**系列中有一篇介绍数据类型的文章中已经介绍过。`category`类型并不是`python`中的类型,是`pandas`特有的类型。 `category`类型的优势那篇文章已经介绍过,当时只是介绍了如何将某个列的数据转换成`category`类型,以及

【pandas小技巧】--DataFrame的显示参数

我们在`jupyter notebook`中使用`pandas`显示`DataFrame`的数据时,由于屏幕大小,或者数据量大小的原因,常常会觉得显示出来的表格不是特别符合预期。 这时,就需要调整`pandas`显示`DataFrame`的方式。`pandas`为我们提供了很多调整显示方式的参数,具

【pandas小技巧】--DataFrame的显示样式

上一篇介绍了`DataFrame`的显示参数,主要是对`DataFrame`中值进行调整。 本篇介绍`DataFrame`的显示样式的调整,显示样式主要是对表格本身的调整,比如颜色,通过颜色可以突出显示重要的值,观察数据时可以更加高效的获取主要信息。 下面介绍一些针对单个数据和批量数据的样式调整方式

【pandas小技巧】--花哨的DataFrame

最近github上发现了一个库(`plottable`),可以用简单的方式就设置出花哨的 `DataFrame` 样式。 github上的地址:[https://github.com/znstrider/plottable](https://github.com/znstrider/plottabl

【pandas小技巧】--读取多个文件

日常分析数据时,只有单一数据文件的情况其实很少见,更多的情况是,我们从同一个数据来源定期或不定期的采集了很多数据文件;或者从不同的数据源采集多种不同格式的数据文件。 在这样的情况下,分析数据之前,需要将不同的数据集合并起来。合并数据一般有两个维度,一是同构的数据集合并后行数增加;一是异构的数据集合并