Dividir un archivo basado en primera columna con python3 + pandas

Hola, en estos días tenía una base de datos con email y necesitaba dividir en varios archivos basado en valor de primera columna. Mi archivo es así:

db.csv

country,email, value1, value1
chi-001,[email protected],1,1
chi-001,[email protected],1,1
pan-001,[email protected],1,1

Y deseo crear archivos separados dependiendo de cada columna y que queden de la siguiente manera:

file chi-001.csv
email,value1,value1
[email protected],1,1
[email protected],1,1

file pan-001.csv
email,value1,value1
[email protected],1,1

Así que con pandas y python3, es sumamente fácil:

Instalar módulo de pandas

pip install pandas


Archivo

import pandas as pd

# Read the CSV file
df = pd.read_csv('db.csv')

# Group by the correct column name
grouped = df.groupby('country')

# Iterate through groups and save to separate CSV files
for name, group in grouped:
# Create a new DataFrame without the first column
new_df = group.drop('country', axis=1)

# Save to a new CSV file
new_df.to_csv(f'{name}.csv', index=False)

# Append the line "[email protected],1,1" to the end of each file
with open(f'{name}.csv', 'a') as file:
file.write("[email protected],1,1\n")
SplitByColumn.py

Al final le agregé una línea para agregar un email, para cada archivo generado, sino necesitas eliminar líneas de 17-19 o comentar

Probado en win10 \
- python3.12
- notepad para leer archivos
ENV

Comentarios

Deja una respuesta

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