I have a dataframe (in Python) as follows:
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
我希望将短划线(不包括 A 和 E 列中的短划线)替换为
NaN
。我尝试过使用
df.replace('-', np.nan)
。但它会将 A 和 E 列的整个单元格也替换掉。我想我可以使用 df[column_name].replace('-',np.nan)
,但这样我需要为每一列单独应用此方法。是否有其他有效的方法,可以对任意数量的列进行类似限制的操作?
df.replace('-', np.nan)
应该可以工作。不确定为什么对你不起作用。 - Joe T. Bokadf.replace('-', np.nan)
的功能超出了我的需求。我希望A列和E列保持不变,但其他列的破折号应该被替换。 - dravid07df.replace('-', np.nan)
不应该改变 A 和 E 列中的任何内容。它只应该替换其他列中的破折号。它应该完全符合您的要求,所以我不明白为什么它对您不起作用。我无法重现这个问题。 - Joe T. Boka