如何在特定单词之前多次将信息从一行添加到另一行?
How can I add info from one row to another row multiple times before a specific word?
假设我有一个 table 如下:
ID Description
1 code: xyz; code:axy
2 code: 238a; code: 34u; code: 482m
3 code: 24sd
4 code: 3edn; code: 3n23
我想要以下 table:
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"])
但是,如您所想,它不起作用。谁能帮我解决这个问题?
您可以尝试(我假设您的 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
在“:”后面没有空格:这是偶然的吗?)
假设我有一个 table 如下:
ID Description
1 code: xyz; code:axy
2 code: 238a; code: 34u; code: 482m
3 code: 24sd
4 code: 3edn; code: 3n23
我想要以下 table:
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"])
但是,如您所想,它不起作用。谁能帮我解决这个问题?
您可以尝试(我假设您的 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
在“:”后面没有空格:这是偶然的吗?)