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

如何让DataFrame中不等长字符串匹配长度?以value2适配value3为例

解决方案:按对应列元素数量截断DataFrame字符串列

需求说明

将DataFrame中value2列的字符串按逗号分割后,截断多余元素,使其元素数量与对应行value3列分割后的元素数量一致,再重新拼接为字符串。

原始数据

typevalue1value2value3
Inner0.52,0.11,0.081.3,1.9,2.8,1.0856.9,60.1,1.0
Outer0.12,3.09,5.91,0.010.1,0.35,1.93,9.31,7.19,3.2993.53,0.87,0.65,0.98
Median0.108.10,9.563.10

实现代码

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'type': ['Inner', 'Outer', 'Median'],
    'value1': ['0.52,0.11,0.08', '0.12,3.09,5.91,0.01', '0.10'],
    'value2': ['1.3,1.9,2.8,1.08', '0.1,0.35,1.93,9.31,7.19,3.29', '8.10,9.56'],
    'value3': ['56.9,60.1,1.0', '93.53,0.87,0.65,0.98', '3.10']
})

# 逐行处理:截断value2至与value3相同的元素数量
df['value2'] = df.apply(
    lambda row: ','.join(row['value2'].split(',')[:len(row['value3'].split(','))]),
    axis=1
)

# 查看处理后的结果
print(df)

处理后结果

typevalue1value2value3
Inner0.52,0.11,0.081.3,1.9,2.856.9,60.1,1.0
Outer0.12,3.09,5.91,0.010.1,0.35,1.93,9.3193.53,0.87,0.65,0.98
Median0.108.103.10

代码说明

  1. 分割字符串:使用split(',')将value2和value3的字符串按逗号拆分为元素列表;
  2. 获取截断长度:通过len()得到value3分割后的元素数量,作为value2的截断长度;
  3. 截断并拼接:取value2分割后列表的前n个元素,再用','.join()重新拼接为字符串;
  4. 逐行应用:利用apply(..., axis=1)实现对DataFrame每行的处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:35:25