Aporto mi solución:
def read_csv(path):
with open(path, 'r') as csvfile:
total = sum(int(r[1]) for r in csv.reader(csvfile))
return total
response = read_csv('./data.csv')
print(response)
Introducción
El Zen de Python
Conjuntos
Sets
Modificando conjuntos
Operaciones con conjuntos
Playgrounds: Elimina elementos duplicados usando conjuntos
Comprehensions
List Comprehension
Dictionary Comprehension
Dictionary Comprehension: condition
Playgrounds: Crea una lista usando List Comprehension
Lists vs. Tuples vs. Sets
Funciones
Funciones
Funciones: return
Parámetros por defecto y múltiples returns
El scope
Refactor game
Playgrounds: Tienda de Tecnología
Funciones anónimas: lambda
Higher order function: una función dentro de otra función
Map
Map con diccionarios
Reto: map con inmutabilidad
Playgrounds: Multiplica todos los elementos por dos
Filter
Playgrounds: Retorna solo palabras de 4 letras y más
Reduce
Módulos
Módulos
Mis propios módulos
Módulos como scripts: __name__ y __main__
Paquetes
Playgrounds: Calcular la suma de todas las compras
Manipulación de archivos y errores
Iterables
Errores en Python
Manejo de excepciones
Playgrounds: Captura la excepción: ZeroDivisionError
Leer un archivo de texto
Escribir en un archivo
Leer un CSV
Playgrounds: Lee un CSV para calcular el total de gastos
Gráficas en Python
Creando una gráfica
Reto: graficando la población de un país
Reto: graficando la población mundial
Próximos pasos
¡Conoce otros proyectos de este curso!
Reconoce tu proceso y certifícate
Toma el Curso de PIP y Entornos Virtuales con Python
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 384
Preguntas 3
Aporto mi solución:
def read_csv(path):
with open(path, 'r') as csvfile:
total = sum(int(r[1]) for r in csv.reader(csvfile))
return total
response = read_csv('./data.csv')
print(response)
Hola, dejo una solución utilizando la función de orden superior reduce:
import csv
import functools
def read_csv(path):
# Tu código aquí 👇
with open(path) as csvfile:
reader = csv.reader(csvfile, delimiter=',')
data = list()
for line in reader:
data.append(int(line[1]))
total = functools.reduce(lambda x,y: x+y, data)
return total
response = read_csv('./data.csv')
print(response)
Mi solución, creo que queda más eficiente haciendo la lógica de la suma directamente en vez de convertir los datos a lista para después usar la función ya incluida
import csv
def read_csv(path):
sum = 0
with open(path, 'r') as csvfile:
reader = csv.reader(csvfile)
for data_set in reader:
sum += int(data_set[1])
return sum
sum_csv = read_csv('./data.csv')
print(sum_csv)
Espero que les sirva:
import csv
def read_csv(path):
with open(path, 'r') as csvfile:
reader = csv.reader(csvfile, delimiter= ",")
dic = { j: k for j,k in reader}
total = 0
for valor in dic.values():
total += int(valor)
return int(total)
response = read_csv('./data.csv')
print(response)
Aqui es donde se pone bueno todo esto, las diferentes respuestas de todos ustedes me molan
Aquí les comparto mi solución:
import csv
def read_csv(path):
with open(path, 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
total = [int(row[1]) for row in reader]
return sum(total)
response = read_csv('./data.csv')
print(response)
Aqui mi solucion al reto:
def read_csv(path):
total = 0
with open(path, 'r', encoding='utf-8') as f:
data = csv.reader(f)
for _, val in data:
total += int(val)
return total
my solucion
import csv
def read_csv(path):
# Tu código aquí 👇
with open (path,"r") as csvfile:
reader = csv.reader(csvfile,delimiter=",")
total_num=[]
for row in reader:
total_num.append(int(row[1]))
total= sum(total_num)
return total
response = read_csv('./data.csv')
print(response)
Este ejercicio me pareció perfecto para aplicar la función reduce aprendida en clases anteriores
import csv
import functools
def read_csv(path):
with open(path) as csvfile:
reader = csv.reader(csvfile, delimiter = ',')
total = functools.reduce(lambda acc, row: acc + int(row[1]), reader, 0)
return total
response = read_csv('./data.csv')
print(response)
Aporto mi solución:
import csv
def read_csv(path):
# Tu código aquí 👇
total = 0
with open(path, 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
total += int(row[1])
return total
response = read_csv('./data.csv')
print(response)
import csv
def read_csv(path):
# Tu código aquí 👇
with open(path, 'r') as archivoCSV:
archivo = csv.reader(archivoCSV, delimiter = ',')
total = sum(int(fila[1]) for fila in archivo)
return total
response = read_csv('./data.csv')
print(response)
Aquí mi solución. Muy complicada creo en mi opinion jejeje
import csv
def run():
def read_csv(path):
with open(path, "r") as file:
reader = csv.reader(file, delimiter=",")
dicty = {x:y for x,y in reader}
return dicty
dicty = read_csv("./data.csv")
print(dicty)
result = int(dicty["Administration"]) + int(dicty["Marketing"]) + int(dicty["Purchasing"]) + int(dicty["Human Resources"]) + int(dicty["Shipping"]) + int(dicty["IT"]) + int(dicty["Public Relations"]) + int(dicty["Sales"]) + int(dicty["Executive"]) + int(dicty["Finance"])
print(f"El precio total es {result}")
if __name__ == "__main__":
run()
import csv
def read_csv(path):
# Tu código aquí 👇
with open(path, 'r') as csv_file:
reader = csv.reader(csv_file)
# print(reader)
total = sum(int(r[1]) for r in reader)
return total
response = read_csv('./data.csv')
print(response)
import csv
def read_csv(path):
total = 0
with open(path, 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
total += int(row[1])
return total
response = read_csv('./data.csv')
print(response)
Quise ponerle un encabezado a la data del archivo csv y trabajar con ello:
import csv
def read_csv(path):
with open(path, 'r') as csvfile:
data = []
for row in csvfile:
row = row.rstrip('\n')
columns = row.split(',')
area = columns[0]
expenses = int(columns[1])
data.append({
'Area': area,
'Expenses': expenses
})
expenses = sum(list(map(lambda item: item['Expenses'], data)))
return expenses
if __name__ == '__main__':
data = read_csv('./data2.csv')
print(data)
import csv
def read_csv(path):
lista=[]
with open(path,"r") as file :
reader = csv.reader(file,delimiter = ",")
header = ["Area", "Gasto"]
for linea in reader:
iterable=zip(header,linea)
dic = {key:valor for (key,valor) in iterable}
lista.append(dic)
gastos = [lis["Gasto"] for lis in lista]
gastos = list(map(lambda x : int(x),gastos))
total = sum(gastos)
return total
response = read_csv('./data.csv')
print(response)
solucion:
Mi solución al problema
import csv
def read_csv(path):
total = 0
# Tu código aquí 👇
with open("data.csv", "r") as archivo_csv:
lector_csv = csv.reader(archivo_csv)
for row in lector_csv:
total += int(row[1])
return total
response = read_csv('./data.csv')
print(response)
La forma más humilde de hacerlo
import csv
def read_csv(path):
# Tu código aquí 👇
total = 0
with open(path, 'r') as csvfile:
reader = csv.reader(csvfile,delimiter=',')
for row in reader:
total += int(row[1])
return total
response = read_csv('./data.csv')
print(response)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?