Estoy leyendo un archivo CSV que tiene dos columnas: continente, países. Las celdas están vacías debajo de cada continente.
Continent | Countries ----------------------------- Asia | China | Japan | Korea North Am. | Canada | USpero me gustaría fusionar estas dos columnas en la columna Continente y tener una sangría.
Continent ----------- Asia China Japan Korea North America Canada US¿Cómo puedo hacer esto usando Python?
El siguiente código debería hacer el truco. Ni siquiera necesita usar pandas para leer un CSV, ya que Python ya tiene un módulo estándar para eso llamado csv . El código genera otro CSV llamado output.csv .
import csv continent = '' with open('data.csv') as csv_in, open('output.csv', 'w') as csv_out: reader = csv.reader(csv_in) writer = csv.writer(csv_out) headers = next(reader, None) # skip the headers writer.writerow([headers[0]]) for row in reader: prev_continent = continent continent = row[0].strip() or continent if prev_continent != continent: writer.writerow([continent]) writer.writerow([f' {row[1]}'])salida.csv
Continent Asia China Japan Korea North Am. Canada USdatos.csv
Continent,Countries Asia ,China ,Japan ,Korea North Am.,Canada ,US