<p>您可以使用<a href="http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.apply.html">^{<cd1>}</a>来执行此操作:</p>
<pre><code>In [11]: df.apply(lambda row: windchill(row['Temperature'], row['Wind Speed']),
axis=1)
Out[11]:
2003-03-01 06:00:00-05:00 24.794589
2003-03-01 07:00:00-05:00 25.136527
2003-03-01 08:00:00-05:00 25.934114
2003-03-01 09:00:00-05:00 28.219431
2003-03-01 10:00:00-05:00 29.505105
In [12]: df['Wind Chill'] = df.apply(lambda row: windchill(row['Temperature'], row['Wind Speed']),
axis=1)
In [13]: df
Out[13]:
Day Temperature Wind Speed Year Wind Chill
2003-03-01 06:00:00-05:00 1 30.27 5.27 2003 24.794589
2003-03-01 07:00:00-05:00 1 30.21 4.83 2003 25.136527
2003-03-01 08:00:00-05:00 1 31.81 6.09 2003 25.934114
2003-03-01 09:00:00-05:00 1 34.04 6.61 2003 28.219431
2003-03-01 10:00:00-05:00 1 35.31 6.97 2003 29.505105
</code></pre>
<p>一。在</p>
<p>为了进一步解释您产生困惑的原因,我认为这是因为行变量是df</strong>的<strong><a href="http://pandas.pydata.org/pandas-docs/dev/indexing.html#returning-a-view-versus-a-copy"><em>copies</em> rather than <em>views</em></a>,因此更改不会传播:</p>
^{pr2}$
<p>我们看到它成功地对copy</strong>进行了更改,<code>row</code>变量:</p>
<pre><code>In [22]: row
Out[22]:
Day 2.00
Temperature 35.31
Wind Speed 6.97
Year 2003.00
Name: 2003-03-01 10:00:00-05:00
</code></pre>
<p>但是它们不会更新到数据帧:</p>
<pre><code>In [23]: df
Out[23]:
Day Temperature Wind Speed Year
2003-03-01 06:00:00-05:00 1 30.27 5.27 2003
2003-03-01 07:00:00-05:00 1 30.21 4.83 2003
2003-03-01 08:00:00-05:00 1 31.81 6.09 2003
2003-03-01 09:00:00-05:00 1 34.04 6.61 2003
2003-03-01 10:00:00-05:00 1 35.31 6.97 2003
</code></pre>
<p>以下内容也保持<code>df</code>不变:</p>
<pre><code>In [24]: row = df.ix[0] # also a copy
In [25]: row['Day'] = 2
</code></pre>
<p>然而,如果我们真的采取了<strong>观点</strong>:(我们将看到<em>变化</em><code>df</code>)</p>
<pre><code>In [26]: row = df.ix[2:3] # this one's a view
In [27]: row['Day'] = 3
</code></pre>
<p>见<a href="http://pandas.pydata.org/pandas-docs/dev/indexing.html#returning-a-view-versus-a-copy">Returning a view versus a copy (in the docs)</a>。在</p>