回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我已经创建了一个具有许多特性的数据帧。我想创建一个新列,选择两个特定行之间的所有行(这些行将作为输入)。在</p>
<p>假设数据帧如下:</p>
<pre><code>data = {'currency': ['Euro', 'Euro', 'Euro', 'Dollar', 'Dollar', 'Yen',
'Yen', 'Yen', 'Pound', 'Pound', 'Pound, 'Pesos',
'Pesos'],
'cost': [34, 67, 32, 29, 48, 123, 23, 45, 78, 86, 23, 45, 67]}
df = pd.DataFrame(data, columns = ['currency', 'cost'])
df
</code></pre>
<p>测向表:</p>
<p><a href="https://i.stack.imgur.com/APQVk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/APQVk.png" alt="enter image description here"/></a></p>
<p>我想添加一个新列,在满足条件时分配1。在我的例子中,条件是两种特定货币之间的所有行。例如,假设我想要“美元”和“英镑”之间的所有货币。我的猜测是我必须创建一个掩码并将其用作条件,即选择第一行“美元”行和最后一行“磅”行之间的所有行(即第3-10行)。在</p>
<p>不过,我在创建面具时遇到了一些问题,因为货币是按字母顺序选择的:</p>
^{pr2}$
<p>上面创建了一个新列,除了“日元”以外,所有货币都有T。我能理解为什么上面的方法失败了,但是我想不出一种方法来做我想做的事情。在</p>
<p>注:相同的货币名称将分组出现,例如“英镑”不能在第4-5行,然后在第8-10行。在</p>