如何对 Pandas 中的 DataFrame 行随机排序
我们可以使用 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
相关文章
计算 Pandas DataFrame 中的方差
发布时间:2024/04/23 浏览次数:181 分类:Python
-
本教程演示了如何计算 Python Pandas DataFrame 中的方差。
查找已安装的 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 之间的区别。