gpt4 book ai didi

python - Pandas :随机化一列中的字母

转载 作者:行者123 更新时间:2023-11-28 22:23:19 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

id1           | id2
----------------------------
ab51c-ee-1a | cga--=%abd21

我只想随机化字母:

id1           | id2
----------------------------
ge51r-eq-1b | olp--=%cqw21

我想我可以做这样的事情:

newid1 = []
for index, row in df.iterrows():
string = ''
for i in row['id1']:
if i.isalpha():
string+=random.choice(string.letters)
else:
string+=i
newcolumn.append(string)

但是好像效率不是很高。有没有更好的办法?

最佳答案

让我们使用 apply,借助 str.replace 的强大功能,使用正则表达式仅替换字母表,即

import string 
import random

letters = list(string.ascii_lowercase)

def rand(stri):
return random.choice(letters)

df.apply(lambda x : x.str.replace('[a-z]',rand))

输出:

           id1            id20  gp51e-id-1v      jvj--=%glw21

For one specific column use

df['id1'].str.replace('[a-z]',rand)

添加者 @antonvbr : 为了将来引用,如果我们想改变大小写,我们可以这样做:

letters = dict(u=list(string.ascii_uppercase),l=list(string.ascii_lowercase))

(df['id1'].str.replace('[a-z]',lambda x: random.choice(letters['l']))
.str.replace('[A-Z]',lambda x: random.choice(letters['u'])))

关于python - Pandas :随机化一列中的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078034/

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