首页 > 解决方案 > 用相同的字符串和随机后缀替换字符串

问题描述

我有一个看起来像这样的数据框:

import pandas as pd
import random

d={'ID':["x1", "x2", "x1"],
'CUSIP':['a', 'b', "#NULL"],
'ISIN':["#NULL", "#NULL", 'I']}

df=pd.DataFrame(data=d)
df

我想用具有随机数后缀的后缀替换“#NULL”。类似于:“#NULL_xyz”,其中 _xyz 是每个“#NULL”的随机生成的数字

标签: pythonpandas

解决方案


你可以做:

df = df.applymap(lambda val: val + ("_" + str(random.randint(0, 1000)) if val == '#NULL' else ''))

并将范围替换为(0, 1000)您想要的任何随机范围。

要使用以下数字,您可以使用生成器:

def myGen():
    for i in range(-1, 1000):
        yield(i)
df = df.applymap(lambda val: val + ("_" + str(next(a)) if val == '#NULL' else ''))

推荐阅读