我有一个数据框(在 Python 中)如下:
A B C D E F G H
0 T-1 2 3 - M-7 2 2
1 T-2 5 4 2 M-7 4 3
2 T-3 - - 3 M-7 9 4
3 T-4 6 - 4 M-7 - 9 5
4 T-5 - 1 5 M-7 8 6
我想用 NaN
替换破折号(不包括 A 和 E 列中的破折号)。
我尝试了 df.replace('-', np.nan)
。它最终也替换了 A 列和 E 列的整个单元格。我想我可以使用 df[column_name].replace('-',np.nan)
但我必须分别为每一列应用它。
有没有其他有效的方法,并且适用于具有类似限制的任意数量的列?
最佳答案
In [18]: df[df.columns.drop(['A','E'])] = \
df[df.columns.drop(['A','E'])].replace('-', np.nan)
In [19]: df
Out[19]:
A B C D E F G H
0 a T-1 a NaN M-7 a a a
1 b T-2 NaN b M-7 NaN b b
2 c T-3 c c M-7 c c NaN
3 d T-4 d d M-7 NaN d d
4 e T-5 NaN e M-7 NaN NaN NaN
关于python - 如何用 NaN 替换 python 数据框中的破折号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470695/