如何使用Pandas打乱CSV文件中的数据行?
打乱DataFrame行的实现方法
你可以通过两种实用方式快速实现行打乱操作,具体如下:
方案一:使用Pandas自带的sample()方法(推荐)
该方法会生成一个新的打乱后的DataFrame,不会修改原数据,设置frac=1即可随机抽取所有行:
df = pd.read_csv('data1.csv', header=None, names=cols) # 生成打乱后的新DataFrame,random_state可选,用于固定随机结果方便复现 shuffled_df = df.sample(frac=1, random_state=42) df1 = shuffled_df[['kac']] print(df1)
方案二:使用shuffle()函数直接修改原数据
如果需要直接打乱原DataFrame的行顺序,可以借助sklearn的工具函数,需先导入对应模块:
from sklearn.utils import shuffle df = pd.read_csv('data1.csv', header=None, names=cols) # 直接打乱原DataFrame的行 df = shuffle(df, random_state=42) df1 = df[['kac']] print(df1)
额外提示
- 若不需要固定随机结果,删除
random_state参数即可,每次运行会得到不同的打乱顺序。 - 要是想把打乱后的数据保存回CSV,可添加代码:
shuffled_df.to_csv('shuffled_data.csv', index=False),其中index=False用于避免保存多余的索引列。
内容的提问来源于stack exchange,提问作者Earth
相关产品推荐
相关产品推荐

