我试图构建一个工具,它可以在维护相同元素的同时对数据集进行置乱。
我想让它遍历每一列,选择一个随机值,并将其粘贴到一个新的df中。
我已经设法使它与下面的代码工作,虽然24列的代码是相当重复的,我知道一个循环应该能够做到这一点快得多,我只是没有能够使它工作。
import pandas as pd
import random
lst1 = df['1'].to_list()
lst2 = df['2'].to_list()
lst3 = df['3'].to_list()
lst4 = df['4'].to_list()
lst5 = df['5'].to_list()
lst6 = df['6'].to_list()
df_new = pd.DataFrame()
df_new['1'] = random.choices(lst1, k=2000)
df_new['2'] = random.choices(lst2, k=2000)
df_new['3'] = random.choices(lst3, k=2000)
df_new['4'] = random.choices(lst4, k=2000)
df_new['5'] = random.choices(lst5, k=2000)
df_new['6'] = random.choices(lst6, k=2000)
3条答案
按热度按时间8hhllhi21#
这里有一个简单的解决方案:
输出(电位):
pd.DataFrame.apply
将pd.Series.sample
方法应用于 Dataframe 的每一列,进行重新采样(replace=True
),并返回原始 Dataframe 的100%大小,frac=1
。23c0lvtd2#
这里有一个循环,你可以循环遍历列名。
pzfprimi3#
您可以循环原始 Dataframe 的列,并对每列使用带替换的采样,以获取新 Dataframe 的列。