Как добавить столбец идентификатора при объединении фреймов данных Pandas?

Опубликовано: 27 Марта, 2022

Обычно мы хотим объединить два или более фрейма данных при работе с некоторыми данными. Итак, когда мы объединяем эти фреймы данных, нам действительно нужно предоставить столбец идентификатора, чтобы идентифицировать объединенные фреймы данных. В этой статье мы увидим с помощью примеров, как мы можем это сделать.

Пример 1:

To add an identifier column, we need to specify the identifiers as a list for the argument “keys” in concat() function, which creates a new multi-indexed dataframe with two dataframes concatenated. Now we’ll use reset_index to convert multi-indexed dataframe to a regular pandas dataframe.

Python3

import pandas as pd
import numpy as np
  
  
dict = {"Name":["Martha", "Tim", "Rob", "Georgia"],
        "Maths":[87, 91, 97, 95],
        "Science":[83, 99, 84, 76]
       }
  
df1 = pd.DataFrame(dict)
  
dict = {"Name":["Amy", "Maddy"],
        "Maths":[89, 90],
        "Science":[93, 81]
       }
  
df2 = pd.DataFrame(dict)
  
# Concatinating two dataframes
df = pd.concat([df1,df2],keys=["t1", "t2"])
display(df)
  
df = pd.concat([df1,df2], keys=["t1", "t2"]).reset_index()
display(df)

Выход:

В выходных данных мы можем видеть столбец с идентификаторами каждого кадра данных, где «t1» представляет первый кадр данных, а «t2» представляет второй кадр данных.

Пример 2:

We can do this similarly for any number of dataframes. In this example, we’ll combine three dataframes.

Python3

import pandas as pd
import numpy as np
  
  
dict = {"Name": ["Martha", "Tim", "Rob", "Georgia"],
        "Maths": [87, 91, 97, 95],
        "Science": [83, 99, 84, 76]
        }
  
df1 = pd.DataFrame(dict)
  
dict = {"Name": ["Amy", "Maddy"],
        "Maths": [89, 90],
        "Science": [93, 81]
        }
  
df2 = pd.DataFrame(dict)
  
dict = {"Name": ["Rob", "Rick", "Anish"],
        "Maths": [89, 90, 87],
        "Science": [93, 81, 90]
        }
  
df3 = pd.DataFrame(dict)
  
# Concating Dataframes
df = pd.concat([df1, df2, df3], 
               keys=["t1", "t2", "t3"])
display(df)
  
df = pd.concat([df1, df2, df3], 
               keys=["t1", "t2", "t3"]).reset_index()
display(df)

Выход:

В выходных данных мы можем видеть столбец с идентификаторами каждого кадра данных, где «t1», «t2» и «t3» представляют первый, второй и третий кадры данных соответственно.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.