【发布时间】:2017-06-10 07:21:32
【问题描述】:
我有一个数据框(在 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),但是我必须分别为每一列应用它。
有没有其他有效的方法,并且适用于具有类似限制的任意数量的列?
【问题讨论】:
-
df.replace('-', np.nan)应该可以工作。不知道为什么它不适合你。 -
正如我在问题中提到的,
df.replace('-', np.nan)的工作量超出了我的要求。我希望 A 列和 E 列保持原样,但应替换其他列的破折号。 -
使用
df.replace('-', np.nan)不应该改变A 和E 列中的任何内容。它应该只替换其他列中的破折号。它应该完全符合您的要求,所以我不明白为什么它不适合您。我无法重现此问题。
标签: python pandas dataframe nan