python pandas 列基于多个 if else 条件

python pandas column based on multiple if else conditions

我的 pandas 数据框中有 4 列,列名可以说是 A、B、C、D,每个列都映射到 UI 中的一个字段。每个都有自己的目的,但是用户在字段 A 或 B 或 C 或 D 中输入字段 A 信息。我正在尝试清理数据并将其带到 A 列进行分析。因此,如果 A 列中有任何值,我不关心 B 或 C 或 D 中的值。但是如果 A 列中没有值,那么我必须在其他列中查找用户条目并将其带到 A 列. A 列的实际值将始终以我们列表中的某些值开头。所以,如果 A 列中没有数据,那么我们必须在 B 列中查找值,看看它是否具有我们列表中的值,然后将它带到 A,如果 B 列也为空或者它有一些除了我们列表中的值之外的其他值,请保留它并在 C 列中检查相同的值,类似地在 D 列中检查。如何在 python?

中执行此操作

如有不明之处请告诉我。

示例,

mylist = ['senior','junior','midlevel']

inputdf

 A        B      C          D
senior  male   senior     UK
        senior candidate  USA
        female junior     
junior  male   junior     AU
        male   candidate  midlevel
        female candidate  AU


Outputdf,

A           B        C         D
senior     male     senior     UK
senior     senior  candidate   USA
junior     female  junior  
junior     male    junior      AU
midlevel   male    candidate  midlevel
           female  candidate  AU

您可以使用 apply 函数遍历 df 和 return 列 'A' 的值。

def func(row):
    for index_val, series_val in row.iteritems():
        if (series_val in mylist):
            return series_val

df['A'] = df.apply(func, axis = 1)

此代码检查 A 中的值是否存在于 mylist 中。如果是,则 return 是该值,否则继续检查 B,然后依此类推。