样品测向:
我有一个df,它的列有Zone
、New_Zone
、Country
、New_Region
&Currency
Currency
列的值有EUR
、AUD
、BLR
、RUB
Zone
列的值类似于EU
、Africa
、NAZ
New_Zone
的值有EU
、Europe
、EUROPE
、Africa
、NAZ
、AFRICA
Country
的值有Australia
、Brazil
、Russia
、Ukraine
、USA
New_Region
的值类似于Australia
、Brazil
、USA
因此,列Zone
和New_Zone
包含几乎相似的值,New_Region
和Country
包含几乎相似的值
询问:
我想用以下条件创建一个名为Currency_Match
的新列:
EUR
,则是或否AUD
,那么是或否BLR
,则是或否如果国家是韩国或(逻辑)新的地区是韩国,(逻辑)货币是KRW
,则是或否
如果区域是非洲或(逻辑)新区是非洲或非洲,和(逻辑)货币是NGN
,则是或否
6如果区域是NAZ或(逻辑)新区域是NAZ,和(逻辑)货币是USD
,则是或否
7如果国家是俄罗斯,乌克兰或(逻辑)新的地区是俄罗斯,(逻辑)货币是RUB
,则是或否
我一共有7种情况像上面这些
代码:
df['Currency_Match']=df.apply(lambda row: "Yes" if (((row['Zone'] == "EU")|(row['New_Zone'] =='Europe')|(row['New_Zone'] =='EU')|(row['New_Zone'] =='EUROPE'))
& (row["Contract - Original Currency Code"] == "EUR"))
else 'No',axis=1)
问题:
上面的代码工作得很好,但是当我编写其他类似的条件时,它会一次又一次地更新列
他们有没有其他的方法我可以做到这一点,也没有这个麻烦
为可读代码的单独行创建每个条件,按} :
|
或&
逐位OR
或AND
链接到最终掩码并传递到^{编辑:对于动态解决方案,使用区域和区域列表按货币创建字典,并传递到} :
dict comprehension
中的^{相关问题 更多 >
编程相关推荐