Python – Eliminar ninguno de los registros anidados

A veces, al trabajar con Python Records, puede haber un problema en el que necesitamos realizar la eliminación de datos que tienen todos los valores de clave como Ninguno en registros anidados. Este tipo de problema puede tener aplicación en el preprocesamiento de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: uso de all()la comprensión del diccionario +
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, la eliminación de todos los valores con todos los valores Ninguno que no están incluidos en la reconstrucción del diccionario se realiza utilizando all().

# Python3 code to demonstrate working of 
# Remove None Nested Records
# Using all() + dictionary comprehension
  
# initializing dictionary
test_dict = {'gfg' : {'a' : 1, 'b' : 2}, 
              'is' : {'d' : None, 'e' : None}, 
              'best' : {'g' : 1}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Remove None Nested Records
# Using all() + dictionary comprehension
res = {key: sub1 for key, sub1 in test_dict.items() if not
      all(sub2 is None for sub2 in sub1.values())}
  
# printing result 
print("The dictionary after removal : " + str(res)) 
Producción :

El diccionario original es: {‘gfg’: {‘b’: 2, ‘a’: 1}, ‘is’: {‘e’: Ninguno, ‘d’: Ninguno}, ‘best’: {‘g’ : 1}}
El diccionario después de la eliminación: {‘gfg’: {‘b’: 2, ‘a’: 1}, ‘best’: {‘g’: 1}}

Método #2: Uso de any() la comprensión del diccionario +
La combinación de las funciones anteriores también se puede usar para resolver este problema. En esto, mantenemos todos los registros que tienen alguna clave, ya que ninguno usa any().

# Python3 code to demonstrate working of 
# Remove None Nested Records
# Using any() + dictionary comprehension
  
# initializing dictionary
test_dict = {'gfg' : {'a' : 1, 'b' : 2}, 
              'is' : {'d' : None, 'e' : None}, 
              'best' : {'g' : 1}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Remove None Nested Records
# Using any() + dictionary comprehension
res = {key: sub1 for key, sub1 in test_dict.items() if 
       any(sub2 is not None for sub2 in sub1.values())}
  
# printing result 
print("The dictionary after removal : " + str(res)) 
Producción :

El diccionario original es: {‘gfg’: {‘b’: 2, ‘a’: 1}, ‘is’: {‘e’: Ninguno, ‘d’: Ninguno}, ‘best’: {‘g’ : 1}}
El diccionario después de la eliminación: {‘gfg’: {‘b’: 2, ‘a’: 1}, ‘best’: {‘g’: 1}}

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *