迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

如何对 Pandas 中的 DataFrame 行随机排序

作者:迹忆客 最近更新:2024/04/23 浏览次数:

我们可以使用 Pandas Dataframe 对象的 sample() 方法,NumPy 模块中的 permutation() 函数和 sklearn 包中的 shuffle() 函数来对 Pandas 中的 DataFrame 行随机排序。


pandas.DataFrame.sample() 方法在 Pandas DataFrame 行随机排序

pandas.DataFrame.sample() 可用于返回项目的随机样本从 DataFrame 对象的轴开始。我们需要将 axis 参数设置为 0,因为我们需要按行采样元素,这是 axis 参数的默认值。

frac 参数确定需要返回的实例总数的哪一部分。如果希望随机排序,请将 frac 的值设置为 1。

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]

df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
print(df)

df_shuffled = df.sample(frac=1).reset_index(drop=True)
print(df_shuffled)

输出:

       Date   Fruit  Price
0  April-10   Apple      3
1  April-11  Papaya      1
2  April-12  Banana      2
3  April-13   Mango      4
       Date   Fruit  Price
3  April-13   Mango      4
2  April-12  Banana      2
0  April-10   Apple      3
1  April-11  Papaya      1

如上所示,Dataframe.shuttle 方法可对 Pandas DataFrame 的行进行混洗。DataFrame 行的索引与初始索引相同。

我们可以添加 reset_index() 方法来重置 DataFrame 索引。

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]

df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
print(df)

df_shuffled = df.sample(frac=1).reset_index(drop=True)
print(df_shuffled)

输出:

       Date   Fruit  Price
0  April-10   Apple      3
1  April-11  Papaya      1
2  April-12  Banana      2
3  April-13   Mango      4
       Date   Fruit  Price
0  April-11  Papaya      1
1  April-13   Mango      4
2  April-10   Apple      3
3  April-12  Banana      2

在这里,drop=True 选项防止将 index 列添加为新列。


numpy.random.permutation()随机排列 Pandas DataFrame 行

我们可以使用 numpy.random.permutation() 来整理 DataFrame 的索引。当使用 iloc() 方法将随机排序后的索引用于选择行时,我们将获得随机排序后的行。

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]

df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})

df_shuffled = df.iloc[np.random.permutation(df.index)].reset_index(drop=True)
print(df_shuffled)

输出:

       Date   Fruit  Price
0  April-13   Mango      4
1  April-12  Banana      2
2  April-10   Apple      3
3  April-11  Papaya      1

运行相同的代码时,你可能会得到不同的结果。这是因为 np.random.permutation() 函数每次都会生成不同的数字排列。


sklearn.utils.shuffle() 随机排序 Pandas DataFrame 行

我们还可以使用 sklearn.utils.shuffle() 来随机排序 Pandas DataFrame 的行。

import pandas as pd
import numpy as np
import sklearn

dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]

df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})

df_shuffled = sklearn.utils.shuffle(df)
print(df_shuffled)

输出:

       Date   Fruit  Price
3  April-13   Mango      4
0  April-10   Apple      3
1  April-11  Papaya      1
2  April-12  Banana      2

如果你没有安装 sklearn 软件包,则可以使用以下脚本进行安装:

pip install -U scikit-learn

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

查找已安装的 Pandas 版本

发布时间:2024/04/23 浏览次数:116 分类:Python

在本文中,我们将介绍如何查找已安装的 Python Pandas 库版本。我们使用了内置版本功能和其他功能来显示其他已安装版本的详细信息。

Pandas 中的 Groupby 索引列

发布时间:2024/04/23 浏览次数:79 分类:Python

本教程将介绍如何使用 Python Pandas Groupby 对数据进行分类,然后将函数应用于类别。通过示例使用 groupby() 函数按 Pandas 中的多个索引列进行分组。

Pandas 通过 Groupby 应用变换

发布时间:2024/04/23 浏览次数:180 分类:Python

本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。

Pandas Vlookup

发布时间:2024/04/23 浏览次数:83 分类:Python

本教程演示如何在 Python 中使用 Pandas 通过不同的技术合并两个不同的表。

Pandas 中的散点矩阵

发布时间:2024/04/23 浏览次数:105 分类:Python

本教程演示了如何使用 scatter_matrix 函数在 Pandas 中创建散点图。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便