如何在串联Pandas数据帧时添加标识符列

如何在串联Pandas数据帧时添加标识符列

在处理一些数据的时候,我们通常要把两个或更多的数据框连接起来。因此,当我们连接这些数据框架时,我们实际上需要提供一个标识符列,以便识别连接的数据框架。在这篇文章中,我们将借助一些例子来看看我们如何做到这一点。

示例 1:

为了增加一个标识符列,我们需要在concat()函数中把标识符作为参数 “keys “的一个列表来指定,这将创建一个新的多索引数据框架,并将两个数据框架串联起来。现在我们将使用reset_index将多索引数据框架转换为普通的pandas数据框架。

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)
 
# Concatenating two dataframes
df = pd.concat([df1,df2],keys=['t1', 't2'])
display(df)
 
df = pd.concat([df1,df2], keys=['t1', 't2']).reset_index()
display(df)

输出:

如何在串联Pandas数据帧时添加标识符列?

在输出中,我们可以看到一列有每个数据框架的标识符,其中 “t1 “代表第一个数据框架,”t2 “代表第二个数据框架。

示例 2:

我们可以对任何数量的数据帧进行类似的操作。在这个例子中,我们将结合三个数据框架。

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)
 
# Concatenating 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)

输出:

如何在串联Pandas数据帧时添加标识符列?

在输出中,我们可以看到一栏是每个数据框架的标识符,其中 “t1″、”t2 “和 “t3 “分别代表第一、第二和第三数据框架。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程