Совершенно новый в Python, и я делаю мой первый проект - очистка данных Excel. Идея состоит в том, чтобы проверить данные перед загрузкой их в систему. Ячейки, которые не отвечают требованиям, должны быть выделены, а комментарий должен быть добавлен в столбец «Комментарий».
Требования к проверке:
Отметьте имена или фамилии, которыесодержать цифры / символы - действие: выделите ячейку и добавить комментарий к колонке комментариев
Проверить пустые ячейки - действие: выделить ячейку и добавить комментарий
Я пробовал по-разному (особенно с помощью оператора IF), как выделить ячейки, которые не отвечают требованиям и комментируют одновременно, но ничего не работает :( Буду признателен за некоторую поддержку
import pandas as pd
import numpy as np
df_i = pd.DataFrame({'Email' : ['john@yahoo.com','john@outlook.com','john@gmail.com'], 'First Name': ['JOHN',' roman2 ',''], 'Last Name': ['Smith','','132'], 'Comments':['','','']})
emails_to_exclude = ('@gmail', '@yahoo')
print(df_i)
#Proper names
def proper_name(name):
return name.str.title()
df_i['First Name'] = proper_name(df_i['First Name'] )
df_i['Last Name'] = proper_name(df_i['Last Name'] )
#Trim spaces
def trim(cell):
return cell.apply(lambda x: x.str.strip())
df_i = trim(df_i)
#Check public email domains
df_i.loc[df_i['Email'].str.contains('|'.join(emails_to_exclude), case=False),'Comments'] = df_i['Comments'].astype(str) + 'public email domain'
#Check first and last name
list_excl = ["1","2","3","4","5","6","7","8","9","0"]
df_i.loc[df_i['First Name'].str.contains('|'.join(list_excl), case=False), 'Comments'] = df_i['Comments'].astype(str) + " Check 'First Name'"
df_i.loc[df_i['Last Name'].str.contains('|'.join(list_excl), case=False), 'Comments'] = df_i['Comments'].astype(str) + " Check 'Last Name'"
print(df_i)