擅长:python、mysql、java
<p>如果序列/列包含NaN,则需要更加小心。在</p>
<pre><code>In [11]: df.loc[2, 'salary'] = np.nan
In [12]: df
Out[12]:
id salary
0 1 1200
1 2 2300
2 3 NaN
3 4 3620
4 5 2100
In [13]: df['salary'].cumsum()
Out[13]:
0 1200
1 3500
2 NaN
3 7120
4 9220
Name: salary, dtype: float64
In [14]: df['salary'] = df['salary'].cumsum()
</code></pre>
<p>实际上,我们可以回到原来的,因为NaN的被跳过了,所以我们跳过它们:</p>
^{pr2}$
<p>现在我们只需将其分配回salary列(缺少的值变为NaN):</p>
<pre><code>In [25]: df['salary'] = d
In [26]: df
Out[26]:
id salary
0 1 1200
1 2 2300
2 3 NaN
3 4 3620
4 5 2100
</code></pre>
<p>注意:如果索引不是唯一的,这将不起作用,但您可以使用以下方法来欺骗它:</p>
<pre><code>df.loc[df['salary'].notnull(), "salary"] = s # or s.values
</code></pre>