繁体   English   中英

如何按条件将值列移动到另一列?

[英]How to move value column to another column by condition?

我有一个 dataframe:

EMAIL NAME COUNTRY

如果EMAIL有错误,我需要将 email 地址移动到 EMAIL 列,如下所示:

EMAIL NAME        COUNTRY
Oleg  p@gmail.com  UA

我知道有apply() function 调用自定义验证 function 作为正则表达式。

我想知道如何迭代每一行中的所有列并移动列值,如果它是 email 并且在另一列中找到?

我想我可以用这个找到电子邮件:

df[df.apply(lambda row: row.astype(str).str.contains("@", case=False).any(), axis=1)].values

我需要像这样获取索引行和值:

index_row   column_index   value
0           1               p@gmail.com

然后我必须将找到的值 dataframe 连接到列EMAIL

def myfunc(x):
  
    for idx in range(len(x)):
        col = str(x[idx])
        # check if column value has @ character in it
        if '@' in str(col):
            return f'{idx} , {x[idx]}'
            
df['Email'] = df.apply(myfunc, axis=1)
df['index'] = df['Email'].fillna('').apply(lambda x: x.split(',')[0])

** 这仅在一行中只有一个 email 列时有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM