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

求助:Pandas按字段名拆分字符串并生成唯一列的实现方法

问题解决:将Pandas中结构化字符串列拆分为唯一字段列

原始数据

原始DataFrame包含一列"Layer 7 Data",内容如下:

0 | Layer 7 Data
-------------------------------------------
1 | HTTP Request Method: GET, HTTP URI: /ucp/
2 | HTTP Return Code: 200, HTTP User-Agent:  Mozilla/5.0
3 | HTTP Return Code: 401, HTTP Request Method: POST

直接用df = df["Layer 7 Data"].str.split(",", expand=True)拆分后,列仅按拆分位置生成,无法对齐唯一字段,不符合需求。

解决方案

通过将每行字符串转换为字段名对应完整内容的字典,再批量转为DataFrame,即可自动对齐所有唯一字段,缺失值自动填充NaN(对应你要的Null)。

代码实现

import pandas as pd

# 模拟原始数据(已有DataFrame可跳过此步)
df = pd.DataFrame({
    "Layer 7 Data": [
        "HTTP Request Method: GET, HTTP URI: /ucp/",
        "HTTP Return Code: 200, HTTP User-Agent:  Mozilla/5.0",
        "HTTP Return Code: 401, HTTP Request Method: POST"
    ]
})

# 核心处理逻辑
processed_df = pd.DataFrame(
    df["Layer 7 Data"].apply(
        lambda x: {item.split(": ", 1)[0]: item for item in x.split(", ")}
    ).tolist()
)

# 若需要将列名改为序号(如0、1、2、3),执行以下代码
processed_df.columns = [str(i) for i in range(len(processed_df.columns))]

# 查看最终结果
print(processed_df)

输出效果

最终输出的结构与你期望的一致:

0               1                     2                                  3
0  HTTP Request Method: GET  HTTP URI: /ucp/                   NaN                                NaN
1                       NaN              NaN  HTTP Return Code: 200  HTTP User-Agent:  Mozilla/5.0
2  HTTP Request Method: POST              NaN  HTTP Return Code: 401                                NaN

内容的提问来源于stack exchange,提问作者Manh Huynh Duc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:01:02