编写一个 Python 程序来对给定系列中的所有元素进行打乱

pythonpandasserver side programmingprogramming更新于 2024/6/21 0:12:17

假设您有一个数据框和对系列中的所有数据进行打乱的结果,

原始系列是
0    1
1    2
2    3
3    4
4    5
dtype: int64
打乱后的系列是:
0    2
1    1
2    3
3    5
4    4
dtype: int64

解决方案 1

  • 定义一个系列。

  • 应用随机打乱方法将系列数据作为参数并对其进行打乱。

data = pd.Series([1,2,3,4,5])
print(data)
rand.shuffle(data)

示例

让我们看看下面的代码以更好地理解 −

import pandas as pd
import random as rand
data = pd.Series([1,2,3,4,5])
print("original series是\n",data)
rand.shuffle(data)
print("shuffles series is\n",data)

输出

原始系列是
0    1
1    2
2    3
3    4
4    5
dtype: int64
shuffles 系列是
0    2
1    3
2    1
3    5
4    4
dtype: int64

解决方案 2

  • 定义一个系列。

  • 创建 for 循环以访问系列数据并在 j 变量中生成随机索引。定义如下,

for i in range(len(data)-1, 0, -1):
   j = random.randint(0, i + 1)
  • 将 data[i] 与随机索引位置的元素交换,

data[i], data[j] = data[j], data[i]

示例

让我们看下面的代码以更好地理解 −

import pandas as pd
import random
data = pd.Series([1,2,3,4,5])
print ("原始系列是 \n", data)
for i in range(len(data)-1, 0, -1):
   j = random.randint(0, i + 1)
   data[i], data[j] = data[j], data[i]
print ("改组后的序列为 :\n ", data)

输出

原始序列为
0    1
1    2
2    3
3    4
4    5
dtype: int64
改组后的序列为:
0    2
1    1
2    3
3    5
4    4
dtype: int64

相关文章


有用资源