基于 id key 的随机数据集
Random dataset based on id key
随机打乱数据集中的行
限制:只有行不能洗牌,列之间的值不能洗牌
np.random.permutation 无法工作,因为它不保留每列的值
random.shuffle结果按键错误
这个table的例子:
如何获取不同的行?例如第 7 行变为第 2 行
您可以使用 DataFrame.sample(...)
方法获得打乱的数据帧,例如:
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.rand(10,3), columns=['A', 'B', 'C'])
df = df.sample(frac=1)
这里 frac=1
告诉函数随机排列行而不是对一些行进行采样。这将导致类似:
A B C
6 0.539230 0.726644 0.904020
9 0.173626 0.774850 0.914098
5 0.114591 0.344212 0.339833
4 0.159820 0.604845 0.029802
3 0.826250 0.765909 0.422308
1 0.110008 0.523306 0.288052
2 0.616792 0.932205 0.659934
8 0.707413 0.794188 0.214229
7 0.409670 0.706913 0.232815
0 0.048167 0.748322 0.014002
随机打乱数据集中的行 限制:只有行不能洗牌,列之间的值不能洗牌
np.random.permutation 无法工作,因为它不保留每列的值
random.shuffle结果按键错误
这个table的例子:
如何获取不同的行?例如第 7 行变为第 2 行
您可以使用 DataFrame.sample(...)
方法获得打乱的数据帧,例如:
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.rand(10,3), columns=['A', 'B', 'C'])
df = df.sample(frac=1)
这里 frac=1
告诉函数随机排列行而不是对一些行进行采样。这将导致类似:
A B C
6 0.539230 0.726644 0.904020
9 0.173626 0.774850 0.914098
5 0.114591 0.344212 0.339833
4 0.159820 0.604845 0.029802
3 0.826250 0.765909 0.422308
1 0.110008 0.523306 0.288052
2 0.616792 0.932205 0.659934
8 0.707413 0.794188 0.214229
7 0.409670 0.706913 0.232815
0 0.048167 0.748322 0.014002