0

我正在从事数据匿名化项目,偶然发现了faker,它具有广泛的生成合成数据的功能,例如姓名、姓氏、ssn、信用卡号、日期......

然而,用户必须手动选择将哪个函数应用于哪个列。就像是:

import faker

fake = faker.Faker()

df["Name"] = df.name.apply(lambda x: fake.name())
df["City"] = df.name.apply(lambda x: fake.city())

在某些数据集中,列的名称可能与其包含的数据不同。所以我想知道有没有办法以某种方式自动化将特定功能应用于各个列的过程?

或者以某种方式将列的值与函数期望的输入进行比较,如果相似,则应用该函数。

我真的很感激任何指示、指导或帮助!

4

1 回答 1

0

这样的事情怎么样?

import faker

fake = faker.Faker()

mapping = {
    'Name': fake.name,
    'City': fake.city,
}

for col, func in mapping.items():
    df[col] = df[col].apply(lambda x: func())
于 2021-11-09T14:43:15.010 回答