我有数据帧:
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)
这也替换了匹配项(奇怪的是,在所有列中,不仅仅是传入的一列),但并不影响非匹配项
您可以使用^{} :
印刷品:
映射完成后,执行以下额外步骤:
相关问题 更多 >
编程相关推荐