按固定的百分比打乱熊猫的单列



我正在尝试使用Sklearn-utils shuffle函数,在每次迭代中按固定百分比(每次迭代中占行的2%。总迭代次数=30(对panda中的单个列进行shuffle。但它不会更改原始数据帧。有什么方法可以将此操作应用于原始数据帧吗?或者有其他方法吗?谢谢

这是代码:

from sklearn.utils import shuffle
for i in range(0, 30, 2):
percent = (i/100) * len(df_task2_train)
shuffle(df_task2_train['class'], n_samples=int(percent))

您没有分配结果,sklearn输出numpy数组:尝试类似的方法

shuffled_dfs = [None] * len(range(0, 30, 2))
for i in range(0, 30, 2):
percent = (i/100) * len(df_task2_train)
shuffled_dfs[i] = pd.DataFrame(shuffle(df_task2_train['class'], n_samples=int(percent)))

如果你想用连接所有产生的df

shuffled_df = pd.concat(shuffled_dfs)

坦率地说,如果不是熊猫,我不会用sklearn。DataFrame.sample,这样您就不必在numpy数组和pandas数据帧之间切换

最新更新