擅长:python、mysql、java
<p>举个例子:</p>
<pre><code>def modify_row(row):
for i in range(len(row)-1):
if row[i] < 0.5:
row[i] += row[i+1]
return row
df = df.apply(lambda row: modify(row), axis=1)
</code></pre>
<p>输入:</p>
<pre><code> 0 1 2 3
0 0.939943 0.891797 0.491610 0.827307
1 0.500028 0.756851 0.545806 0.575469
2 0.880074 0.662705 0.205046 0.269572
3 0.970287 0.731664 0.528683 0.785946
</code></pre>
<p>提供:</p>
<pre><code> 0 1 2 3
0 0.939943 0.891797 1.318918 0.827307
1 0.500028 0.756851 0.545806 0.575469
2 0.880074 0.662705 0.474618 0.269572
3 0.970287 0.731664 0.528683 0.785946
</code></pre>
<p>注意第2列中的输入。你知道吗</p>
<hr/>
<p>Edit:<code>DataFrame.transform()</code>是一个更好的候选者,因为它不会创建新的数据帧。同样,类似于<code>kmario23</code>的并行工作:</p>
<pre><code>def modify_row(row):
mask = row[:-1] < 0.5
row[:-1] += row[1:]* mask
# raw = True makes row to be an np.array
df.transform(lambda row: modify_row(row), axis=1, raw=True)
</code></pre>