擅长:python、mysql、java
<p>首先需要两个索引相同,然后可以在另一个数据帧<code>df2</code>中使用由<code>df1</code>中的条件创建的布尔掩码:</p>
<pre><code>m = df1['A'] > 54
df2['Buy'] = df2['Buy'].mask(m, "Buy")
df2['Sell'] = df2['Sell'].mask(~m, "Sell")
</code></pre>
<p>与<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.assign.html" rel="nofollow noreferrer">^{<cd3>}</a>相同:</p>
<pre><code>df2 = df2.assign(Buy= df2['Buy'].mask(m, "Buy"),Sell = df2['Sell'].mask(~m, "Sell"))
</code></pre>
<p>或:</p>
<pre><code>df2.loc[m, 'Buy'] = "Buy"
df2.loc[~m, 'Sell'] = "Sell"
</code></pre>
<hr/>
<pre><code>print (df2)
Buy Hold Sell
Date
2011-08-26 0 0.0 Sell
2011-08-29 Buy 0.0 0
2011-08-30 Buy 0.0 0
2011-08-31 Buy 0.0 0
2011-09-01 Buy 0.0 0
2011-09-02 0 0.0 Sell
</code></pre>
<p>如果索引不同,请使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.reindex.html" rel="nofollow noreferrer">^{<cd4>}</a>:</p>
<pre><code>m = (df1['A'] > 54).reindex(df2.index, fill_value=False)
</code></pre>