【发布时间】:2020-08-27 13:43:37
【问题描述】:
我有数据框:
df = pd.DataFrame{'col1': ['afs', 'chk', 'est', 'app'],
'col2': ['ofcr', 'guar', 'ltv', 'gender'],
'col3': ['code', 'mod']}
我有字典:
dict = {'ofcr':'officer','chk':'check','mod':'modification','est':'estimated','app':'application', 'gender':'gender'}
我需要遍历 df 并用它们各自的值替换数学键。我可以通过以下方式逐列执行此操作:
df["col1"] = df["col1"].map(dict)
但这会将不匹配项转换为 NaN。我想要的是保持令牌不变,但在字符串中添加“-UNKNOWN-”或类似的明显内容,以便以后处理。我试过循环:
for tok in df['col1']:
if tok in dict.values():
df.replace(dict, inplace=True)
if tok not in dict.values():
df.replace(tok, tok '-UNKNOWN', inplace=True)
print(tok)
这也替换了匹配项(奇怪的是,在所有列中,不仅仅是传入的那个),但不影响非匹配项。
【问题讨论】:
标签: python dictionary replace append