【发布时间】:2020-11-09 18:52:25
【问题描述】:
我有以下数据框:
df = pd.DataFrame({'A':range(10), 'B':range(10), 'C':range(10), 'D':range(10)})
我想使用以下函数对数据进行洗牌:
import pandas as pd
import numpy as np
def shuffle(df, n=1, axis=0):
df = df.copy()
for _ in range(n):
df.apply(np.random.shuffle, axis=axis)
return df
但是我不想改组 A 列和 D 列,只改组 B 列和 C 列。有没有办法通过修改函数来做到这一点?我想说如果 column == 'A' 或 'D' 然后不要洗牌。
谢谢
【问题讨论】:
-
您可以轻松索引数据帧,使用
sample随机分配并返回。为什么要使用这个功能? -
我想说如果 column == 'B' 或 'C' 然后不要洗牌。或者您的意思是列 A 或 D 。最佳
-
取出需要洗牌的列,然后重新赋值
-
@YOBEN_S 我确实想过,但如果可能的话,我想把它写到函数中
-
@yatu 你能举个例子吗?