Python pandas applymap 异常值的错误处理

Python pandas applymap error handling for unexpected value

.applymap() 的错误处理

我在考虑如何处理错误。

我正在查看 pandas applymap() 文档并找到 ignore_na 但这不是我要找的。

这是数据框

df

SNP_1 SNP_2 SNP_3
T:G T:G ACC:ACC
T:G T:G ACC:ACC
T:G T:G ACC:ACC
dict_map = {'T:G': 'K'}
df = df.applymap(lambda x: dict_map[x])
KeyError: 'ACC:ACC'

很明显,我收到一个错误。实际上,我没想到会在数据框中找到它。现在我想摆脱整个专栏。

预期的输出将是一个没有 df['SNP_3'] 列的字典映射数据框。有没有办法在应用字典映射时识别要删除的列?

df

SNP_1 SNP_2
K K
K K
K K

我不知道。它可以帮助解决您的问题。

dict_map = { 'T:G': 'K'}
df = df.applymap(lambda x: dict_map[x] if x in dict_map else "")
SNP_1 SNP_2 SNP_3
K k
K k
K k

这是一种方法。首先,用 NaN 填充不可映射的列,然后删除它们:

df = df.applymap(lambda x: dict_map[x] if x in dict_map else pd.NA)
df = df.dropna(axis=1, how='all')

输出:

  SNP_1 SNP_2
0     K     K
1     K     K
2     K     K