文档详情

Python数据分析基础与应用电子活页5-16使用concat()函数沿轴连接数据.docx

发布:2025-05-24约2.34千字共4页下载文档
文本预览下载声明

Python数据分析基础与应用

模块

PAGE4

PAGE3

电子活页5-16使用concat()函数沿轴连接数据

【技能训练5-16】使用concat()函数沿轴连接数据

【训练要求】

在JupyterNotebook开发环境中创建j5-16.ipynb,然后编写代码使用concat()函数沿轴连接数据。

【实施过程】

1.使用concat()函数纵向连接对象DataFrame

创建2个DataFrame对象,并对其进行连接。

(1)纵向外连接操作

代码如下:

importpandasaspd

data11={Id:[1001,1002,1003,1004],

name:[安静,路远,温暖,向北],

sex:[女,男,男,女],

age:[21,20,19,22],

height:[171,180,189,166]}

df11=pd.DataFrame(data11)

data21={Id:[1005,1006,1007,1008],

name:[阳光,白雪,夏天,云朵],

sex:[男,女,男,女],

age:[23,18,20,22],

score:[65,84,78,92.5]}

df21=pd.DataFrame(data21)

#纵向外连接df11与df21

pd.concat([df11,df21])

输出结果:

(2)纵向内连接操作

代码如下:

#纵向内连接df11与df21

pd.concat([df11,df21],join=inner,axis=0)

输出结果:

从上述输出结果可以看出,纵向内连接方式只会将被连接的两个数据集中共有的列(Id、name、sex、age)数据纵向连接,非共有的列不会出现在结果数据集中。

2.使用concat()函数横向连接DataFrame对象

(1)横向外连接操作

代码如下:

importpandasaspd

data12={Id:[1001,1002,1003,1004],

name:[安静,路远,温暖,向北],

sex:[女,男,男,女]}

df12=pd.DataFrame(data12)

data22={score1:[71,80,89,92,65],

score2:[82,72,96,88,93.5]}

df22=pd.DataFrame(data22)

#横向外连接df12与df22

pd.concat([df12,df22],axis=1,join=outer)

输出结果:

从上述输出结果可以看出,横向连接两个DataFrame对象,将会追加新的列。由于被连接对象的列长度不同,所以连接后会产生不存在的数据,这些数据会自动使用NaN进行填充。

(2)横向内连接操作

代码如下:

#横向内连接df12与df22

pd.concat([df12,df22],axis=1,join=inner)

输出结果:

从上述输出结果可以看出,输出结果的行数与左数据集行数相同。

3.在concat()函数中使用keys参数给DataFrame对象连接一个指定的键

代码如下:

importpandasaspd

data13={name:[安静,路远,温暖,向北],

sex:[女,男,男,女],

age:[21,20,19,22],

score:[71,80,89,92]}

label13=[0,1,2,3]

df13=pd.DataFrame(data13,index=label13)

data23={name:[阳光,白雪,夏天,云朵],

sex:[男,女,男,女],

age:[23,18,20,22],

score:[65,84,78,92.5]}

label23=[1,2,3,4]

df23=pd.DataFrame(data23,index=label23)

#连接df13与df23,并给df13、d223连接一个指定的键

pd.concat([df13,df23],keys=[第1小组,第2小组])

输出结果:

从上述输出结果可以看出,行索引存在重复使用的现象。如果想让输出的行索引遵循依次递增的规则,那么需要将ignore_index参数设置为True。

将i

显示全部
相似文档