Combinar dos columnas de texto en DataFrame en Pandas

Ahmed Waheed 30 enero 2023
  1. Método de operador +
  2. df.map() método
  3. df.apply() método
  4. Series.str.cat() método
  5. df.agg() método
Combinar dos columnas de texto en DataFrame en Pandas

Cuando se trabaja con conjuntos de datos, a veces es necesario combinar dos o más columnas para formar una sola. Por ejemplo, tienes un conjunto de datos con Name y apellido separados en columnas, y ahora necesitas la columna Nombre completo. A continuación se enumeran las diferentes formas de realizar esta tarea.

  1. Operador +
  2. map()
  3. df.apply()
  4. Series.str.cat()
  5. df.agg()

Usaremos el mismo DataFrame en las siguientes secciones como sigue,

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
print(df)

Lo siguiente será la salida.

     First      Last Age
0      Ali     Azmat  30
1  Sharukh      Khan  40
2    Linus  Torvalds  70

Método de operador +

Use el operador + simplemente si quiere combinar datos del mismo tipo de datos.

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df["Full Name"] = df["First"] + " " + df["Last"]
print(df)

Se obtendrá lo siguiente.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

df.map() método

También puedes usar la función df.map() para combinar el texto de dos columnas.

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df["Full Name"] = df["First"].map(str) + " " + df["Last"]
print(df)

Se obtendrá lo siguiente.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

df.apply() método

La función join() también se usa para unir cadenas. Podemos aplicarla en nuestro DataFrame usando la función df.apply(). La función df.apply() se usa para aplicar otra función en un eje específico.

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df[["First", "Last"]].apply(" ".join, axis=1)
print(df)

Se obtendrá lo siguiente.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Series.str.cat() método

También podemos usar este método series.str.cat() para concatenar cadenas en el Series/Índice con el separador dado.

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df["First"].str.cat(df["Last"], sep=" ")
print(df)

Se obtendrá lo siguiente.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

df.agg() método

Al igual que df.apply(), este método también se utiliza para aplicar una función específica sobre el eje especificado.

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df[["First", "Last"]].agg(" ".join, axis=1)
print(df)

Se obtendrá lo siguiente.

     First      Last Age       Full Name
0      Ali     Azmat  30       Ali Azmat
1  Sharukh      Khan  40    Sharukh Khan
2    Linus  Torvalds  70  Linus Torvalds

Artículo relacionado - Pandas DataFrame Column