[英]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.