正在尝试将174.0更改为NaN。我是不是错过了一些显而易见的东西?在整个数据帧中查找值的索引太复杂了,所以我将其缩小到Well L15。这是不允许的吗?
input: df[df['Well']=='L15'].iloc[4,6]
output: 174.0
input: df[df['Well']=='L15'].iloc[4,6] = np.nan
input: df[df['Well']=='L15'].iloc[4,6]
output: 174.0
我希望这能在最后给我NaN,而不是174.0。非常感谢。
文档说:
除了简单的情况外,很难预测它会返回视图还是副本(这取决于数组的内存布局,Panda对此没有任何保证(
所以在你的情况下,很难预测df[df['Well']=='L15'].iloc[4,6]
会是吗
- 视图(在这种情况下,更改其元素将更改原始元素,因为它只是视图(
- 或副本(在这种情况下,其元素将被更改,但原始元素将而不是。(
这里有一个可以使用的变通方法。显式创建一个副本(这样Panda就不会因为不知道它是视图还是副本而抱怨(,更改此副本中的值,然后替换原始中的值:
sub_df = df[df['Well']=='L15'].copy()
sub_df.iloc[4, 6] = np.nan
df[df['Well']=='L15'] = sub_df