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

如何在Pandas中按行拼接多个data series元素生成新序列

Pandas多Series对应位置元素拼接实现方案

完全可以实现按对应位置拼接多个Series生成新Series的需求,核心逻辑是先将所有参与拼接的Series转为指定格式的字符串,再按位置拼接即可,无需使用merge、append这类dataframe级别的合并操作。

示例实现

首先构造和你需求一致的示例数据:

import pandas as pd

# 对应你的ColumnA,float64类型
s_type = pd.Series([1.0, 2.0, 3.0], dtype='float64')
# 对应你的ColumnB,float64类型
s_number = pd.Series([1.0, 2.0, 3.0], dtype='float64')
# 对应你的ColumnC,datetime64[ns]类型
s_date = pd.Series(pd.to_datetime(['2018-04-07', '2018-05-08', '2018-06-09']))

方法1:使用+运算符直接拼接

如果需要和示例一致,将日期转为Excel序列号格式再拼接:

# 处理日期为Excel序列号(1900年日期系统)后转字符串
s_date_serial = (s_date.view('int64') // 10**9 // 86400 + 25569).astype(str)
# 数值列转字符串,可按需去掉末尾的.0
s_type_str = s_type.astype(str).str.rstrip('.0')
s_number_str = s_number.astype(str).str.rstrip('.0')

# 对应位置拼接
result = s_type_str + s_number_str + s_date_serial

执行后result.iloc[0]的输出即为你需要的1143285。
如果不需要转Excel序列号,直接拼接日期字符串,将日期处理改为s_date.astype(str)即可。

方法2:使用str.cat批量拼接

如果需要拼接的Series数量较多,推荐用str.cat方法,代码更简洁:

result = s_type_str.str.cat([s_number_str, s_date_serial], na_rep='')

其中na_rep参数用于指定缺失值的替换内容,避免出现拼接结果为NaN的情况。

注意事项

  • 所有参与拼接的Series需要长度一致、索引对齐,否则会出现拼接错位或空值
  • 非字符串类型的Series必须先转为字符串类型后再执行拼接操作

内容的提问来源于stack exchange,提问作者Tegman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:09:03