python - 如何用 NaN 替换 python 数据框中的破折号?

标签 python pandas dataframe nan

我有一个数据框(在 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/

相关文章:

python - 在 python 函数中,我是否需要预先分配一个在 if 下有条件出现的值?

python - 在 Sublime 中设置插入符位置

python - Pandas 使用其他列中的值创建新列,并根据列值进行选择

python - Pandas 数据框 : How to set values after an index to 0

python - 如何从决策树的 x_train 预测位置获取叶子的节点号?

python - 如何从 python 生成 reST/sphinx 源?

python - 将 UUID 添加到 pandas DF

python - 函数内的函数,用于根据列值迭代每行

python - 在 Pandas 中通过多个 id 列合并多个数据帧

python - CSV 到 json 转换