【发布时间】:2022-01-14 22:31:23
【问题描述】:
我有一个数据框,其中有一列 TaskName,其中包含各种任务字符串。我还有一个字典,其中键是我想要匹配的类别,值是标识类别的子字符串列表。 TaskName 的每条记录都包含这些字典值之一(一旦将 .lower() 应用于它),但我无法找到解决此问题的有效解决方案。数据框大约有 100,000 行,我能想出的唯一解决方案是嵌套的 for 循环和处理时间过长(超过 10 分钟)的 if 语句。如何有效地用对应的 catDict 键填充 df 的类别列?
df = pd.DataFrame({'JobId': [123,456,789],
'TaskName': ["Carpet [09743CARPET T/K 23525-346]", "QUALITY INSPECTION –
FINAL INSPECTION [2-93 QUALITY 43634]", "Install Glue Down
Wood [98053vPREFAB WOOD FLOOR 2935]"],
'Category': ["","",""]})
catDict = {'Frame': ['concrete pump truck', 'quality inspection - final inspection'],
'Final': ['prefab wood', 'carpet t/k']}
【问题讨论】:
标签: python pandas dictionary indexing