我已经创建了一个具有许多特性的数据帧。我想创建一个新列,选择两个特定行之间的所有行(这些行将作为输入)。在
假设数据帧如下:
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
测向表:
我想添加一个新列,在满足条件时分配1。在我的例子中,条件是两种特定货币之间的所有行。例如,假设我想要“美元”和“英镑”之间的所有货币。我的猜测是我必须创建一个掩码并将其用作条件,即选择第一行“美元”行和最后一行“磅”行之间的所有行(即第3-10行)。在
不过,我在创建面具时遇到了一些问题,因为货币是按字母顺序选择的:
^{pr2}$上面创建了一个新列,除了“日元”以外,所有货币都有T。我能理解为什么上面的方法失败了,但是我想不出一种方法来做我想做的事情。在
注:相同的货币名称将分组出现,例如“英镑”不能在第4-5行,然后在第8-10行。在
同样适用于重复索引的一般解决方案:
唯一索引的替代工作:
^{pr2}$说明:
==
相同的内容[::-1]
反转掩模0
替换为1
为^{第二个解决方案使用^{} 作为第一个索引值,并将
1
设置为loc
在逻辑或上使用Numpy的累加
相关问题 更多 >
编程相关推荐