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

在Pandas DataFrame中遍历多列并拼接十六进制字符串数据

解决Pandas DataFrame中十六进制字符串分组拼接问题

问题说明

你有一个包含A、B列的Pandas DataFrame,两列均为带空格分隔的十六进制字符串。需要将B列元素按组与A列对应位置的元素拼接,最终输出拼接后的字符串列表,要求用迭代循环实现。

输入数据处理

你提供的字典dtf中,A列有3个元素,B列有13个元素,我们将B列划分为3组:前4个元素对应A列第一个值,中间4个对应A列第二个值,最后5个对应A列第三个值。

代码实现

import pandas as pd

# 构造输入数据
dtf = {
    'A': ['00 12 3b 01 00 00 00 00','00 13 3b 01 00 00 00 00','00 14 3b 01 00 00 00 00'],
    'B': ['59 d0 7f 10 27 f8 7f ff 7f ','60 d0 7f 10 27 f8 7f ff 7f ','61 d0 7f 10 27 f8 7f ff 7f ','62 d0 7f 10 27 f8 7f ff 7f ','64 d0 7f 10 27 f8 7f ff 7f ','65 d0 7f 10 27 f8 7f ff 7f ','66 d0 7f 10 27 f8 7f ff 7f ','67 d0 7f 10 27 f8 7f ff 7f ','69 d0 7f 10 27 f8 7f ff 7f ','70 d0 7f 10 27 f8 7f ff 7f ','71 d0 7f 10 27 f8 7f ff 7f ','72 d0 7f 10 27 f8 7f ff 7f ','73 d0 7f 10 27 f8 7f ff 7f ']
}

# 转换为DataFrame
df = pd.DataFrame(dtf)

# 划分B列分组,与A列元素一一对应
group_size = len(df['B']) // len(df['A'])
remainder = len(df['B']) % len(df['A'])
b_groups = []
start_idx = 0
for i in range(len(df['A'])):
    # 最后一组分配剩余的元素
    end_idx = start_idx + group_size + (1 if i == len(df['A'])-1 else 0)
    b_groups.append(df['B'].iloc[start_idx:end_idx].tolist())
    start_idx = end_idx

# 迭代拼接每组的B元素与对应A值
result_list = []
for a_str, b_group in zip(df['A'], b_groups):
    for b_str in b_group:
        # 去除B字符串末尾多余空格后拼接
        combined_str = f"{a_str} {b_str.strip()}"
        result_list.append(combined_str)

# 查看最终结果
print(result_list)

代码解释

  1. 构造DataFrame:将你提供的字典转换为Pandas DataFrame,统一管理数据。
  2. 划分B列分组:计算每组基础长度,把剩余元素分配到最后一组,保证每个A值对应一组B元素。
  3. 迭代拼接:通过两层循环完成拼接——外层遍历A值与对应B组,内层遍历组内每个B元素,处理掉B元素末尾的多余空格后,与A值拼接并存入结果列表。
  4. 输出结果:result_list即为你需要的分组拼接后的十六进制字符串列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:30:17