Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

450
Views
Ruby: cómo iterar a través de un hash creado a partir de un archivo csv

Estoy tratando de tomar un archivo CSV existente, agregarle una cuarta fila y luego recorrer la segunda y la tercera fila para crear los valores de la cuarta fila. Usando Ruby, he creado hashes donde los encabezados son las claves y los valores de columna son los valores hash (por ejemplo: "id"=>"1", "new_fruit" => "apple")

Mi archivo CSV de práctica se ve así: imagen de archivo csv de práctica

Mi objetivo es crear una cuarta columna: "brand_new" (que pude hacer) y luego agregarle valores concatenando los valores de la segunda y tercera fila (en la que estoy atascado). Por el momento, solo tengo un valor de ubicación (x) para los valores de la cuarta columna para poder ver si realmente funcionó agregar la cuarta columna al hash: Resultados con x = 1

Aquí está mi código:

 require 'csv' def self.import table = [] CSV.foreach(File.path("practice.csv"), headers: true) do |row| table.each do |row| row["brand_new"] = full_name end table << row.to_h end table end def full_name x = 1 return x end # Add another col, row by row: import.each do |row| row["brand_new"] = full_name end puts import

Cualquier sugerencia u orientación sería muy apreciada. Gracias.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Simplificó un poco su código. Primero leo el archivo, luego itero sobre el contenido leído.

Nota: Cambie col_sep a coma o elimínelo para usar el valor predeterminado si es necesario.

 require "csv" def self.import table = CSV.read("practice.csv", headers: true , col_sep: ";") table.each do |row| row["brand_new"] = "#{row["old_fruit"]} #{row["new_fruit"]}" end puts table end

Uso el método de lectura para leer el contenido del archivo CSV. Le permite acceder directamente a los valores de columna/celda.

La línea 7 muestra cómo concatenar los valores de columna como una cadena:

 "#{row["old_fruit"]} #{row["new_fruit"]}"

Consulte esta antigua publicación de SO y los documentos de CSV Ruby para obtener más información sobre cómo trabajar con archivos CSV.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!