gpt4 book ai didi

python - 在 Pandas 数据框中随机播放一列

转载 作者:太空狗 更新时间:2023-10-30 01:11:03 25 4
gpt4 key购买 nike

如何在 pandas 中只打乱一列数据?

我有一个包含生产数据的 Dataframe,我想将其加载到开发人员上进行测试。但是,数据包含个人身份信息,因此我想打乱这些列。

列:名字姓氏出生日期 SSN 其他数据

如果原始数据框是由 read_csv 创建的,并且我想将数据转换为第二个数据框以进行 sql 加载,但随机排列名字、姓氏和 SSN,我希望能够这样做:

if devprod == 'prod':
#do not shuffle data
df1['HS_FIRST_NAME'] = df[4]
df1['HS_LAST_NAME'] = df[6]
df1['HS_SSN'] = df[8]
else:
df1['HS_FIRST_NAME'] = np.random.shuffle(df[4])
df1['HS_LAST_NAME'] = np.random.shuffle(df[6])
df1['HS_SSN'] = np.random.shuffle(df[8])

但是,当我尝试这样做时,出现以下错误:

试图在 DataFrame 的切片副本上设置一个值

最佳答案

直接错误是在处理数据帧时使用不明智方法的症状。

np.random.shuffle就地工作并返回 None,因此分配给 np.random.shuffle 的输出将不起作用。事实上,很少需要就地操作,而且通常不会产生任何物质利益。

这里,例如,你可以使用np.random.permutation并通过 pd.Series.values 使用 NumPy 数组而不是系列:

if devprod == 'prod':
#do not shuffle data
df1['HS_FIRST_NAME'] = df[4]
df1['HS_LAST_NAME'] = df[6]
df1['HS_SSN'] = df[8]
else:
df1['HS_FIRST_NAME'] = np.random.permutation(df[4].values)
df1['HS_LAST_NAME'] = np.random.permutation(df[6].values)
df1['HS_SSN'] = np.random.permutation(df[8].values)

关于python - 在 Pandas 数据框中随机播放一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54009400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com