Python divide CSV en varios archivos

Zeeshan Afridi 21 junio 2023
  1. Crear un archivo CSV en Python usando Pandas
  2. Dividir un archivo CSV en varios archivos en Python
  3. Conclusión
Python divide CSV en varios archivos

En este artículo, aprenderemos cómo dividir un archivo CSV en varios archivos en Python. Usaremos Pandas para crear un archivo CSV y dividirlo en varios otros archivos.

Crear un archivo CSV en Python usando Pandas

Para crear un CSV en Python usando Pandas, es obligatorio instalar primero Pandas a través de la interfaz de línea de comandos (CLI).

pip install pandas

Este comando descargará e instalará Pandas en su máquina local. Usando la palabra clave importar, puede importarlo fácilmente a su programa Python actual.

Verifiquemos Pandas si está instalado o no.

Ejemplo de código:

import pandas as pd

print("The Version of Pandas is: ", pd.__version__)

Producción :

The Version of Pandas is: 1.3.5

Ahora, vamos a crear un archivo CSV.

Ejemplo de código:

import pandas as pd

# create a data set
data_dict = {
    "Roll no": [1, 2, 3, 4, 5, 6, 7, 8],
    "Gender": ["Male", "Female", "Female", "Male", "Male", "Female", "Male", "Female"],
    "CGPA": [3.5, 3.3, 2.7, 3.8, 2.4, 2.1, 2.9, 3.9],
    "English": [76, 77, 85, 91, 49, 86, 66, 98],
    "Mathematics": [78, 87, 54, 65, 90, 59, 63, 89],
    "Programming": [99, 45, 68, 85, 60, 39, 55, 88],
}

# create a data frame
data = pd.DataFrame(data_dict)

# convert the data frame into a csv file
data.to_csv("studesnts.csv")

# Print the output
print(data)

Producción :

   Roll no  Gender  CGPA  English  Mathematics  Programming
0        1    Male   3.5       76           78           99
1        2  Female   3.3       77           87           45
2        3  Female   2.7       85           54           68
3        4    Male   3.8       91           65           85
4        5    Male   2.4       49           90           60
5        6  Female   2.1       86           59           39
6        7    Male   2.9       66           63           55
7        8  Female   3.9       98           89           88

Dividir un archivo CSV en varios archivos en Python

Hemos creado con éxito un archivo CSV. Dividámoslo en varios archivos, pero se podrían usar diferentes matrices para dividir un CSV en la base de columnas o filas.

Dividir un archivo CSV basado en filas

Dividamos un archivo CSV en la base de filas en Python.

Ejemplo de código:

import pandas as pd

# read DataFrame
data = pd.read_csv("students.csv")

# number of csv files along with the row
k = 2
size = 4

for i in range(k):
    df = data[size * i : size * (i + 1)]

    df.to_csv(f"students{i+1}.csv", index=False)

file1 = pd.read_csv("students1.csv")
print(file1)
print("\n")
file2 = pd.read_csv("students2.csv")
print(file2)

Producción :

      Roll no  Gender  CGPA  English  Mathematics  Programming
0        1    Male     3.5       76           78           99
1        2    Female   3.3       77           87           45
2        3    Female   2.7       85           54           68
3        4    Male     3.8       91           65           85

      Roll no  Gender  CGPA  English  Mathematics  Programming
4        5   Male     2.4       49           90           60
5        6   Female   2.1       86           59           39
6        7   Male     2.9       66           63           55
7        8   Female   3.9       98           89           88

El código anterior ha dividido el archivo students.csv en dos archivos múltiples, student1.csv y student2.csv. El archivo está separado por filas; las filas 0 a 3 se almacenan en student.csv, y las filas 4 a 7 se almacenan en el archivo student2.csv.

Dividir un archivo CSV basado en columnas

Podemos dividir cualquier archivo CSV basado en matrices de columnas con la ayuda de la función groupby(). La función groupby() pertenece a la biblioteca de Pandas y utiliza datos de grupo.

En este caso, estamos agrupando los datos de los estudiantes en función del Género.

Ejemplo de código:

import pandas as pd

# read DataFrame
data = pd.read_csv("students.csv")

for (gender), group in data.groupby(["Gender"]):
    group.to_csv(f"{gender} students.csv", index=False)

print(pd.read_csv("Male students.csv"))
print("\n")
print(pd.read_csv("Female students.csv"))

Producción :

       Roll no  Gender  CGPA  English  Mathematics  Programming
0        1      Male   3.5       76           78           99
1        4      Male   3.8       91           65           85
2        5      Male   2.4       49           90           60
3        7      Male   2.9       66           63           55


       Roll no  Gender  CGPA  English  Mathematics  Programming
0        2      Female   3.3       77           87           45
1        3      Female   2.7       85           54           68
2        6      Female   2.1       86           59           39
3        8      Female   3.9       98           89           88

Conclusión

La división de datos es una técnica de análisis de datos útil que ayuda a comprender y clasificar los datos de manera eficiente.

En este artículo, hemos discutido cómo crear un archivo CSV usando la biblioteca de Pandas. Además, hemos discutido las dos técnicas comunes de división de datos, división de datos por filas y por columnas.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python CSV