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

如何在pandas中将数据框行转换为Topic_1~5与Coauthor_1~5列?

解决方案

可以通过pandas的字符串拆分、列重命名和合并功能实现需求,具体步骤和代码如下:

1. 模拟原始数据框

先创建和你提供数据一致的示例数据框,方便测试:

import pandas as pd

data = {
    'Topics': [
        'Object Detection; Deep Learning; IOU',
        'Character Recognition; Tesseract; Number',
        'Robot; End Effectors; Malus',
        'Crops; Plant Diseases and Disorders; Beriberi',
        'Swarm Robotics; Swarm; Social Insects'
    ],
    'co-authors': [
        'Bandala, Argel A.',
        'Vicerra, Ryan Rhay P.',
        'Concepcion, Ronnie',
        'Sybingco, E.',
        'Billones, Robert Kerwin C.'
    ]
}

df = pd.DataFrame(data)

2. 拆分并生成主题列

将Topics列按; 拆分,扩展为指定的5个主题列,不足5个主题的行自动填充NaN:

# 拆分Topics列,expand=True将拆分结果转为数据框
topics_expanded = df['Topics'].str.split('; ', expand=True)
# 重命名列名为Topic_1到Topic_5,仅保留前5列(多余内容丢弃,不足补NaN)
topics_expanded.columns = [f'Topic_{i+1}' for i in range(5)]

3. 拆分并生成合作者列

同样处理co-authors列,兼容单个或多个分号分隔的合作者场景:

# 拆分co-authors列
coauthors_expanded = df['co-authors'].str.split('; ', expand=True)
# 重命名列名为Coauthor_1到Coauthor_5
coauthors_expanded.columns = [f'Coauthor_{i+1}' for i in range(5)]

4. 合并生成最终数据框

将拆分后的主题列和合作者列按列合并,得到目标结构:

new_df = pd.concat([topics_expanded, coauthors_expanded], axis=1)

执行后new_df即为需求中的数据框,不足5个主题/合作者的位置会显示NaN。

内容的提问来源于stack exchange,提问作者Ken.WS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:31:12