将多个Series对象合并成一个DataFrame对象

本文详细介绍如何使用pd.concat()函数及pd.DataFrame(list(zip(s1,s2)))方法实现多个Series对象到DataFrame对象的转换,包括行拼接、列拼接以及解决索引不匹配问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

将多个列合并成一个表,也就是将多个Series对象合并成一个DataFrame对象,本文章着重讲解多列合并。

主要推荐的函数有pd.concat()
和pd.DataFrame(list(zip(s1, s2, s3)))

接下来是详细讲解

首先介绍pd.contact()函数

首先创建两个Series对象为例

首先要提醒的是,DataFrame对象的每一列都可以看做是一个Series对象
换句话说,DataFrame对象可以看做是多个Series对象拼接而成

s1(注:第一列的数字是索引)

在这里插入图片描述

s2(注:第一列的数字是索引)

在这里插入图片描述

concat()函数里面有两个常用的参数axis 和ignore_index, 默认值分别为axis=0, ignore_index=False, axis=0表示行拼接,axis=1表示列拼接

1. 首先尝试直接对s1和s2使用pd.concat([s1, s2], axis=0, ignore_index=False)在这里插入图片描述

会发现这样会直接把s1和s2进行简单的行拼接

2. 对s1和s2使用pd.concat([s1, s2], axis=1, ignore_index=False)

在这里插入图片描述
结果是把s1和s2中具有相同索引的值进行了拼接, 最后的结果变成了一个具有两列的DataFrame对象

3. 对s1和s2使用pd.concat([s1, s2], axis=1, ignore_index=True)

在这里插入图片描述

结果和上面的一样

4. 对s1和s2使用pd.concat([s1, s2], axis=0, ignore_index=True)

在这里插入图片描述
现在就可以发现ignore_index = True 的作用了,他就是在进行 行拼接的可以忽略原先二者的索引值,然后重新构建索引
我们也可以对比3和4发现,在进行列拼接的时候,ignore_index 是不生效的

那如何拼接两个索引值不同的列呢

下面介绍两个方法

解决拼接两个索引值不同的列的方法:

方法一在这里插入图片描述

出现上述问题的根本原因还是两个列的索引值不同

第一个方法就是把两个列的索引值都改成一样

s1.reset_index(drop=True, inplace=True)
s2.reset_index(drop=True, inplace=True)

这样就可以把两列的索引值都去掉,或者说是都设置为初试默认值0,1,2…
这样再使用,就可以进行拼接了
在这里插入图片描述

方法二

pd.DataFrame(list(zip(s1, s2)))

在这里插入图片描述
zip()里面也可以放3个列及以上的列

这个方法也可以直接忽略两列不同的索引值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值