【问题标题】:Replace values with NaN用 NaN 替换值
【发布时间】:2019-09-29 23:41:34
【问题描述】:

我有一个索引列表,如下

indeces_to_replace= [3,5,6]

我想用 NaN 值替换我的数据集中这些索引(行)中的所有值。有人可以指导我吗?

数据集如下所示:

i     v1     v2       v3
0      3     6         8
1      5     7         10
2      12    11        8
3      14    13        3
4      12    2         4 
5      12    13        32
6      11    9         11
7      9     8         7

所以基本上我想用 NaN 完全替换索引 3,5,6。

【问题讨论】:

  • 向我们展示您的数据集的外观?你有没有尝试过任何事情来实现这个@AlexDavies?
  • 我更新了问题以回答您的第一个问题。我尝试的是以下df=df.replace(indices_to_replace, np.nan),但它没有用@DeveshKumarSingh

标签: python replace nan


【解决方案1】:

list 传递给iloc 并分配给np.nan

df.iloc[[3, 5, 6]] = np.nan

如果您只想修改v2v3 列,请使用loc

df.loc[[3, 5, 6], ['v2', 'v3']] = np.nan

【讨论】:

  • 感谢您的回答@gmds。您能否修改不删除整行的代码,例如:对于我拥有的数据集。我想保留 v1 并用 nan 替换 v2 和 v3
【解决方案2】:

您可以使用 iloc 选择一行,然后替换值。举个例子:

data = {'v1': [3,5,12], 'v2': [6,7,11], 'v3':[8,10,8]}
df = pd.DataFrame(data)

   v1  v2  v3
0   3   6   8
1   5   7  10
2  12  11   8

结果

df.iloc[1] = np.nan

     v1    v2   v3
0   3.0   6.0  8.0
1   NaN   NaN  NaN
2  12.0  11.0  8.0

编辑

df.iloc[:, 1:] = np.nan

   v1  v2  v3
0   3 NaN NaN
1   5 NaN NaN
2  12 NaN NaN

【讨论】:

  • 感谢您的回答。但是,您能否修改不删除整行的代码,例如:对于我拥有的数据集。我想保留 v1 并用 nan 替换 v2 和 v3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-02
  • 2013-04-01
  • 2014-06-09
  • 2022-07-08
  • 2017-08-14
  • 2019-03-21
  • 2018-09-24
相关资源
最近更新 更多