【问题标题】:How can I add info from one row to another row multiple times before a specific word?如何在特定单词之前多次将信息从一行添加到另一行?
【发布时间】:2020-11-22 13:58:46
【问题描述】:

假设我有一个如下表:

ID             Description
1           code: xyz; code:axy
2      code: 238a; code: 34u; code: 482m
3             code: 24sd
4         code: 3edn; code: 3n23

我想要下表:

ID            Description
1              code: xyz
1              code: axy
2              code: 238a
2              code: 34u
2              code: 482m
3              code: 24sd
4              code: 3edn
4              code: 3n23

我的实际代码:

for line in fhand["Description"]:
    x = line.replace(";" , ",")
    y = txt.replace("code", [fhand['Id'] + "code"])

但是,正如您可以想象的那样,它不起作用。谁能帮我解决这个问题?

【问题讨论】:

    标签: python pandas database csv python-re


    【解决方案1】:

    您可以尝试(我假设您的 DataFrame 名为 fhand,如您的代码示例中所示):

    fhand['Description'] = fhand['Description'].str.split(';')
    fhand = fhand.explode('Description')
    

    编辑:您可能想在之后添加lstrip

    fhand['Description'] = fhand['Description'].str.lstrip()
    

    结果:

        Description
    ID             
    1     code: xyz
    1      code:axy
    2    code: 238a
    2     code: 34u
    2    code: 482m
    3    code: 24sd
    4    code: 3edn
    4    code: 3n23
    

    (在您的示例中,code:axy 在“:”后面没有空格:这是偶然的吗?)

    【讨论】:

    • 非常感谢蒂姆斯!你真的帮助了我,我得到了我想要的结果。这是我第一次使用堆栈溢出,也是我第一次使用 python 寻求帮助。我是初学者。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多