python - 如何使用 Python 在 Pandas 中应用多个条件?

标签 python pandas dataframe

如何在 pandas 中应用多个条件? 例如我有这个数据框

Country   VAT        
RO       RO1449488
RO       RO1449489
RO       RO1449486
MD       2980409450027

例如,对于具有 RO 的国家/地区,我希望从 VAT 中删除“RO”并仅保留数字。 或者例如,如果国家不是 RO 并且让(VAT)为 13,则在 VAT 前面添加“03”

输出要像

Country   VAT        
RO       1449488
RO       1449489
RO       1449486
MD       032980409450027

我知道如何使用 openpyxl 执行此操作,但 pandas 对我来说是新手,我发现 pandas 语法更难理解。

最佳答案

您可以将 bool 选择与 numpy.select 一起使用:

import numpy as np
                       # condition1            condition2
df['VAT'] = np.select([df['Country'].eq('RO'), df['VAT'].str.len().eq(13)],
                       # replacement1      
                      [df['VAT'].str.replace('^RO', '', regex=True),
                      '03'+df['VAT']], # replacement2
                       df['VAT']       # default
                     )

输出:

  Country              VAT
0      RO          1449488
1      RO          1449489
2      RO          1449486
3      MD  032980409450027

关于python - 如何使用 Python 在 Pandas 中应用多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71479265/

相关文章:

python - 检查 exe 是 32 位还是 64 位

python - 如何将变量的值传递给python中的import语句

python - 在 kvlang 中访问 Kivy 布局大小

python - Pandas astype 为 int() 抛出无效文字,基数为 10 错误

pandas - 如何遍历行并获取任何先前行的最大值

r - 使用单个采样命令在数据框中创建多行

Python 3 - 按键错误 = 8

Python - 将 CSV 文件作为表格打印到控制台

python - 在 numpy/pandas 中用组聚合替换组的值

python - 自 apache arrow 1.0.1 发布以来用于长期存储的 Feather 格式