Как применить пользовательскую функцию сопоставления строк к pandas фрейму данных и вернуть итоговый фрейм данных о правильных / неправильных шаблонах? - PullRequest
0 голосов
/ 15 января 2020

Я написал функцию сопоставления с шаблоном, чтобы классифицировать погоду, если значение столбца данных соответствует заданному шаблону или нет. Я создал столбец «Correct_Pattern» для хранения логических ответов в этом фрейме данных. Я также создал новый фрейм данных с именем Incorrect_Pattern_df, который содержит только те значения, которые не соответствуют требуемому шаблону. Я сделал это, потому что позже я хотел бы посмотреть, смогу ли я исправить эти неправильные цифры. Теперь, каждый раз, когда я исправляю пакет чисел, я хотел бы снова проверять формат чисел и заново создавать файл Incorrect_Pattern_df. Пожалуйста, смотрите мой код ниже. Что мне нужно сделать, чтобы это заработало?

#data
mylist = ['850/07-498745', '850/07-148465', '07-499015']

#create dataframe
df = pd.DataFrame(mylist)
df.rename(columns={ df.columns[0]: "mycolumn" }, inplace = True)


#function to check if my numbers follow the correct pattern
def check_number_format(dataframe, rm_pattern, column_name):

#create a column Correct_pattern that contains a boolean 'true or false' depending wheather the 
pattern was matched or not
dataframe['Correct_pattern'] = dataframe[column_name].str.match(pattern)

#filter all incorrect patterns and put them in a dataframe called Incorrect-Pattern_df
Incorrect_Pattern_df = dataframe[dataframe.Correct_pattern == False]

#return both the original dataframe with the added Correct_pattern_df and the dataframe containing 
the Incorrect_Pattern_df 
return Incorrect_Pattern_df

#apply the check_Schadennumer_Format to a dataframe
Incorrect_Pattern_df = df['mycolumn'].apply(check_number_format,  args=(df, r'^\d{2}-\d+$', 
'mycolumn'))

Желаемый результат должен выглядеть следующим образом:

enter image description here

...