У меня есть два набора данных, которые мне нужно проверить. Все записи должны совпадать. У меня возникли проблемы с определением, как перебирать каждый отдельный столбец.
import pandas as pd
import numpy as np
df = pd.DataFrame([['charlie', 'charlie', 'beta', 'cappa'], ['charlie', 'charlie', 'beta', 'delta'], ['charlie', 'charlie', 'beta', 'beta']], columns=['A_1', 'A_2','B_1','B_2'])
df.head()
Out[83]:
A_1 A_2 B_1 B_2
0 charlie charlie beta cappa
1 charlie charlie beta delta
2 charlie charlie beta beta
Например, в приведенном выше коде я хочу сравнить A_1 с A_2 и B_1 с B_2, чтобы вернуть новый столбец, A_check и B_check соответственно, которые возвращают True, если A_1 соответствует A_2 как A_Check например.
Примерно так:
df['B_check'] = np.where((df['B_1'] == df['B_2']), 'True', 'False')
df_subset = df[df['B_check']=='False']
Но итерируемый по всем заданным именам столбцов, где столбцы, с которыми нужно проверять, всегда будут иметь одинаковое имя перед подчеркиванием и всегда иметь 1 или 2 после подчеркивания.
В конечном счете, фактическая задача имеет несколько фреймов данных с разными столбцами для проверки, а также различное количество столбцов для проверки. Результат, к которому я в конечном итоге обращаюсь, - это фрейм данных, который показывает все записи, которые были ложными для любой конкретной проверки столбца.