小编Ric*_*Ric的帖子

Python pandas if语句基于布尔限定符

我试着做一个IF语句,它保持我的货币对按字母顺序排列(即USD/EUR会翻转到EUR/USD,因为E按字母顺序排在U之前,但CHF/JPY保持不变,因为C在J之前按字母顺序排列)最初我打算编写特定于此的代码,但意识到还有其他需要翻转的字段(主要是将符号改为负数,反之亦然.)

所以我所做的是编写一个函数来创建一个新的列,并建立一个布尔标识符来确定该字段是否需要动作(True)或不需要(False).

def flipFx(ccypair):
    first = ccypair[:3]
    last = ccypair[-3:]
    if(first > last):
        return True
    else:
        return False

brsPosFwd['Flip?'] = brsPosFwd['Currency Pair'].apply(flipFx)    
Run Code Online (Sandbox Code Playgroud)

这很好用,做我想要的.

然后我尝试编写一个IF语句来使用该字段创建两个新列:

if brsPosFwd['Flip?'] is True:
    brsPosFwd['CurrencyFlip'] = brsPosFwd['Sec Desc'].apply(lambda x: 
x.str[-3:]+"/"+x.str[:3])
    brsPosFwd['NotionalFlip'] = -brsPosFwd['Current Face']
else:
    brsPosFwd['CurrencyFlip'] = brsPosFwd['Sec Desc']
    brsPosFwd['NotionalFlip'] = brsPosFwd['Current Face']
Run Code Online (Sandbox Code Playgroud)

但是,这不能正常工作.它创建了两个新字段,CurrencyFlip和NotionalFlip,但是对每个记录都是假的,只是粘贴它之前的内容.

有没有人有任何想法?

python if-statement boolean dataframe pandas

1
推荐指数
1
解决办法
89
查看次数

标签 统计

boolean ×1

dataframe ×1

if-statement ×1

pandas ×1

python ×1