You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并三个Series,将对应位置元素拼接为整数生成新Series?

实现对应位置元素拼接为整数的方法

给定三个序列:

s1 = [1,1,3]
s2 = [2,3,2]
s3 = [4,2,1]

需要生成新序列s_new = [124,132,321],即把对应索引位置的元素依次拼接成整数,以下是几种正确的实现方式:

针对普通列表的实现

方式1:字符串拼接法

利用zip打包对应位置元素,转字符串拼接后转整数:

s_new = [int(''.join(map(str, items))) for items in zip(s1, s2, s3)]
  • zip(s1, s2, s3)会将三个列表对应位置的元素打包成元组,比如(1,2,4)、(1,3,2)
  • map(str, items)把元组里的每个数字转成字符串
  • ''.join(...)拼接字符串,再用int()转成整数

方式2:数学计算法(适合元素为个位数的场景)

直接通过数位权重计算,避免字符串操作,效率更高:

s_new = [a * 100 + b * 10 + c for a, b, c in zip(s1, s2, s3)]
  • 第一个元素作为百位(×100),第二个作为十位(×10),第三个作为个位(×1),相加得到目标整数

针对Pandas Series的实现

如果你的s1、s2、s3是Pandas的Series对象,可直接用以下方法:

方式1:字符串拼接法

import pandas as pd

s1 = pd.Series([1,1,3])
s2 = pd.Series([2,3,2])
s3 = pd.Series([4,2,1])

s_new = (s1.astype(str) + s2.astype(str) + s3.astype(str)).astype(int)

方式2:数学计算法

s_new = s1 * 100 + s2 * 10 + s3

内容的提问来源于stack exchange,提问作者the.lotuseater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:25:18