我有一个表,其中包含由'=‘分隔的标记及其转换(其中一行将是'ACTION_PLAN=Action计划’)。我需要解析另一个文件并将所有的标记替换为这些值。
我成功地创建了一个dict,它使用以下代码将所有标记作为键,短语作为值:
with open(dictionaryFileName) as d:
commands = dict(line.split('=', 1) for line in d)它做了我想做的,一个带有“记号”的小词:短语
但是,我现在需要使用这个dict来替换另一个文件(一个csv)中的所有令牌。
这个文件类似于'ACTION_PLAN,GROUP_ANALYTICAL_MAP_REPORT,READ',每个逗号都是一个标记,所以我尝试执行以下操作:
data = pd.read_csv(permissionFileName)
data["module_name"] = data["module_name"].str.translate(commands)
print(data)其中"module_name“是第一列的名称。
但是它的返回完全相同,没有任何变化,也没有例外。我做了一些研究,发现dict需要以unicode字符作为键,除了自己创建方法之外,还需要这样做呢?
预期用于此特定代码块的代码:输入
module_name, group_name, perm_name
ACTION_PLAN,GROUP_ANALYTICAL_ACTION_PLAN_REPORT,READ
ACTION_PLAN,GROUP_ANALYTICAL_MAP_REPORT,READ产出:
Action Plan,GROUP_ANALYTICAL_ACTION_PLAN_REPORT,READ
Action Plan,GROUP_ANALYTICAL_MAP_REPORT,READ字典:
ACTION_PLAN=Action Plan发布于 2019-08-27 14:57:35
正如在this post中所述,您可以使用以下任一项,其中map的速度更快。data["module_name"].replace(commands)或data["module_name"].map(commands)
如果是部分替换(对于任何其他阅读此内容的人),您可以使用data["module_name"].replace(commands, regex=True)执行两项任务,所以请谨慎使用:
https://stackoverflow.com/questions/57676922
复制相似问题