У меня есть несколько фреймов данных (около 37), и я хотел бы сравнить имена столбцов этих фреймов, чтобы я знал, что все они имеют одинаковый порядок столбцов и столбцов.Кадры данных хранятся в виде списка объектов (например, tbl [0] является первым кадром данных, tbl [1] является вторым и т. Д.).
Я написал следующий блок кода, который будет брать каждый столбец моих фреймов данных (tbl) и сравнивать их со столбцами других фреймов данных. Если есть разница, то индекс этих фреймов данных добавляется в 2D-список,который я могу позже вспомнить, чтобы увидеть, где столбцы не соответствуют.
a = [[]]
for i in range(0,len(tbl)):
for j in range(i+1, len(tbl)):
if(~(tbl[i].columns.equals(tbl[j].columns))):
a.append([i, j])
Но когда я запускаю приведенный выше код, он добавляет все индексы фреймов данных, которые я сравниваю.Что-то не так, что я делаю здесь?
Пример:
tbl = []
for i in range(0,3):
tbl.append(pd.DataFrame({'a':[1,2,3],'b':[3,4,5], 'c':[7,8,3], 'd':[1,5,3]}))
a = [[]]
for i in range(0,len(tbl)):
for j in range(i+1, len(tbl)):
if(~(tbl[i].columns.equals(tbl[j].columns))):
a.append([i, j])
Ради этого вопроса я создал 3 фиктивных кадра данных с одинаковыми именами столбцов (a, b,CD).Когда я сравниваю имена столбцов, используя код, упомянутый ранее, я получаю следующий вывод:
[[], [0, 1], [0, 2], [1, 2]]
Разве я не должен получать пустой список?Что я тут не так делаю?