大家好,我重新发布了这个问题,因为我之前的问题违反了 StackOverflow 规则
我想创建一个 python 脚本,可以在不删除其内容的情况下屏蔽/匿名每个 csv 列中的信息。因为数据将用于进一步分析和做一些统计建模。数据主要包含用户 ID、项目 ID、客户 ID、客户地址、客户姓名、订单类型、电子邮件地址。我有点坚持目前的进展,因为我想让这个过程更有效
- 我怎样才能使这个过程更具可扩展性,这意味着我不需要为每个 CSV 文件创建一个脚本,而是更深入地了解如何使用某种技术将脚本应用于每个 CSV 文件,而无需从头开始重写?
我目前的方法:我现在的方法是通过对每一列做一些事情来处理每一列。例如用户 ID,我将其替换为唯一值前面的附加字符串(例如,由于第一行中的用户 ID 1234,它被替换为 user_0)
请给我一些建议,我想讨论一下,以便我可以做一个更有效的方法
编辑:这是数据的样子(我希望我把它放在允许的格式)
plant_id project_id plant_name project_name address customer_id project type
---------- ------------ --------------- -------------------------------- ----------------- ------------- --------------
15052.0 6496 Manufacturing ASAHI,PT-PRO/PTN/06-2012/192 streetname-city e8cfa43f Individual
15052.0 6458 Manufacturing CIMB NIAGA-PRO/PTN/06-2012/174 streetname-city 7b2bf5dc Individual
15052.0 11441 Manufacturing DM STOCK 2015 streetname-city dc0c9893 Corporate
我想首先尝试的预期输出示例:
plant_id project_id plant_name project_name address customer_id project type
---------- ------------ --------------- --------------------- ----------------- ------------- --------------
123 1111 AAAAAAAAAAAAA ABCDEFGHIJKLMNOPQ XYXYXYXYXYXY abcd1111 2
123 2222 AAAAAAAAAAAAA FGHJKLMNABCDEFGHH XYXYXYXYXYXY abcd2222 2
123 3333 AAAAAAAAAAAAA FGHFDGDGASDADAFAH XYXYXYXYXYXY abcd3333 3
这是我当前的代码
data['customer_id'] = 'user_' + (pd.Series(pd.factorize(data['customer_id'])[0] + 1)).astype(str)
data['project_id'] = 'Project_' + (pd.Series(pd.factorize(data['project_id'])[0] + 1)).astype(str)