示例 DF:
我有一个 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
具有以下条件的新列:
如果 Zone 是 EU OR (logical) New_Zone 是 EU, Europe 或 EUROPE AND (logical)CurrencyEUR
那么 Yes else No
如果 Country 是 Australia OR(逻辑)New_Region 是 Austraila AND(逻辑)Currency 是AUD
Yes else No
如果 Country 是巴西OR(逻辑)New_Region 是巴西AND(逻辑)货币BLR
则是 Yes else No
如果国家是韩国OR(逻辑)New_Region 是韩国AND(逻辑)货币KRW
则是 Yes else No
如果 Zone 是 Africa OR(逻辑)New_Zone 是 Africa 或 AFRICA,AND(逻辑)CurrencyNGN
则是 Yes else No
6 如果 Zone 是 NAZ OR(逻辑)New_Zone 是 NAZ,AND(逻辑)CurrencyUSD
则是 Yes else No
7 如果国家是俄罗斯,乌克兰OR(逻辑)New_Region 是俄罗斯AND(逻辑)货币RUB
则是 Yes else No
我总共有 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)
问题:
上面的代码运行良好,但是当我编写这样的其他条件时,它会一次又一次地更新列。
他们有没有其他方法可以做到这一点,而且比这更不麻烦
慕森卡
相关分类