Hola, he visto varias publicaciones sobre cómo combinar dos diccionarios en Python. Sin embargo, lo que me gustaría hacer es combinar claves similares en el mismo diccionario y agregar los valores. ... en verdad, lo que haré inicialmente es cambiar el nombre de las claves en varias categorías y luego me gustaría combinar claves similares y agregar los valores. ¿Existe un método sencillo para hacer esto posible? Por el momento he optado por iterar y cambiar claves... pero parece una forma lenta de hacer las cosas. Me pregunto si debo o no iterar primero sobre la descripción de la transacción y crear una nueva lista y luego comprimirla o no. Cualquier idea se agradece.
aquí está mi modesto comienzo
df = pd.read_csv("spreadsheet.csv")
item = df['Transaction Description']
cost = df['Debit Amount']
purchases = {}
purchases = {}
key, value in zip(item, cost):
purchases[key] = value
keys = purchases.keys()
for i in purchaces.keys {
if key == "Soverign housing"
purchases [Rent] = purchaces[Soverign housing]
del dictionary[Soverign housing]
...etc
------------------------------------
La más sencilla es utilizar in para ver si un nuevo diccionario contiene una clave de cada diccionario.
en este ejemplo utilicé *args, que es la lista de argumentos para hacerlo más flexible.
dic_a = {'A': 20, 'B': 30, 'C': 40}
dic_b = {'A': 5, 'C': 2, 'F': 100}
dic_c = {'H': 32, 'K': 75, 'G': 15}
def combine_dict(*args):
comb = dict()
for dic in args:
for key in dic:
if key in comb:
comb[key] += dic[key]
else:
comb[key] = dic[key]
return comb
if __name__ == '__main__':
print(combine_dict(dic_a, dic_b))
print(combine_dict(dic_a, dic_b, dic_c))
------------------------------------
No entiendo qué quieres decir con valores condensados, etc.
@user1717828 es correcto al solicitar código de entrada/salida para que podamos entenderlo claramente.
Pero lo que entiendo es que cuando combinas 2 objetos dict, debes mantener las mismas claves pero combinar valores, por ejemplo
dict_a = {'A':1, 'B': 2, 'C':3}
dict_b = {'A':10, 'C': 20, 'D':30}
for key,val in dict_b:
try:
_key = dict_a[key] # Already Exist Key in Dict A
except: # If Object does not Exist
dict_a[key]=val
else: # If exist Then Make a list and Append
dict_a_val = dict_a[key] #Current value in dict_a
dict_a[key] = []
dict_a[key].append(dict_a_val)
dict_a[key].append(val)
#output:
# {'A':[1,10], 'B': 2, 'C':[3,20] , 'D':30}
Espero que estuvieras buscando esto
1
Hola organización Zevhy, sí, eso es correcto, así que después de cambiar las claves a las categorías deseadas, quiero combinar claves similares y agregar los valores. así que para aclarar es de una declaración... en este momento tengo un diccionario que dice algo como {bp: 21, esso: 23, vivienda: 1000} quiero que esto se convierta en {combustible:21, combustible:23, alquiler:1000 } y finalmente {combustible:44, alquiler:1000}
- C2100
27/03/2021 a las 14:36