Получение уникальных значений из столбцов объектов(не с плавающей точкой или int) набора файлов(.parquet) из разных путей с помощью python

#python #pandas

#питон #панды

Вопрос:

У нас есть скрипт для перебора всех путей, а затем перебора всех файлов по этому пути, чтобы получить уникальные значения из всех столбцов всех файлов. Мы использовали itertools и все, чтобы сравнить один и тот же столбец, если существуют одинаковые значения, и получить из него уникальные значения. Я получаю ВФ при разборе ошибка из-за строки «Если тип(эвал(слова) в [‘СТР ‘буль’]», благодаря которому я снял «ивала» и после этого я не получаю «конец файла EOF при разборе ошибка» проблема я столкнулся сейчас, — это несколько объектов столбцы(кроме количества столбцов, такие как int и float), что пропустил, перед удалением оценки и столбцов есть пропущенный кто-нибудь может пожалуйста помочь? я новичок в кодировании

или кто-нибудь может предложить альтернативную логику для этого?

Логические:

 import os  import pandas as pd  import csv  import re  import itertools     def uniques(words):  finals = []  for word in set(words):  try:  word = word.strip()  if not type((word)) in [str, bool]:  continue  else:  finals.append(word)  except Exception as e:  print(e, word)  finals.append(word)  return finals     every_file_columns = {}  for report_path in report_paths:  files = os.listdir(report_path)  for file in files:  if not file.endswith(".parquet"):  continue  print("Report path ",report_path)  print("Filename ",file)  full_path = os.path.join(report_path, file)  df = pd.read_parquet(full_path)  for col in df.select_dtypes(include=['object']):  try:  values = df[col].dropna().unique()  values = uniques(values)  print(values)  except:  continue  if col not in every_file_columns:  every_file_columns[col.upper()] = []  else:  print(col, len(every_file_columns[col]))  if len(values): # To not add empty lists  every_file_columns[col.upper()].append(set(values))  

Я заметил, что из этой строки я получаю неожиданный вывод, поэтому в приведенном ниже фрагменте кода должна быть проблема

 club_col = {}  for col, arrays in every_file_columns.items():  print(arrays)  if len(arrays) gt; 1:  combinations = itertools.combinations(list(range(len(arrays))), 2)  for combination in combinations:  index1, index2 = combination  intersection = set.intersection(arrays[index1], arrays[index2])   if not len(intersection):  if not (index1, col) in club_col:  club_col[(index1, col)] = arrays[index1]  else:  club_col[(index1, col)].union(arrays[index1], arrays[index2])  if not (index2, col) in club_col:  club_col[(index2, col)] = arrays[index2]  else:  club_col[(index2, col)].union(arrays[index1], arrays[index2])  else:  if not (index1, col) in club_col:  club_col[(index1, col)] = arrays[index1]  else:  club_col[(index1, col)].union(arrays[index1], arrays[index2])  break    

Комментарии:

1. можете ли вы поделиться кодом, который вы пробовали

2. Я добавил сейчас @SubbuVidyaSekar