gpt4 book ai didi

python - 将 Pandas 数据框字符串拆分为单独的行

转载 作者:行者123 更新时间:2023-12-05 09:09:00 25 4
gpt4 key购买 nike

我有一个文本字符串数据框,它基本上代表每行一个或多个旅程。我正在尝试拆分旅程的各个部分,以便我可以单独看到它们。示例输入数据框如下所示:

更新:

df_input = pd.DataFrame([{'var1':'A/A1', 'var2':'x/y/z', 'var3':'abc1'}, 
{'var1':'B', 'var2':'xx/yy', 'var3':'abc2'},
{'var1':'c', 'var2':'zz', 'var3':'abcd'}])

var1 var2 var3
0 A/A1 x/y/z abc1
1 B xx/yy abc2
2 c zz abcd

我尝试获得的输出应该如下所示。因此,对于第一个示例,旅程路线为 A 到 A1,然后 A1 到 x,然后 x 到 y,然后 y 到 z。如果还有一种方法可以添加一个额外的列来指示行程段编号(1、2、3 等),那将非常有帮助。 var3 在这里并不重要,但我只是包含它以表明在拆分行时还有其他列会重复。

df_output = pd.DataFrame([{'var1': 'A', 'var2': 'A1', 'var3':'abc1'}, 
{'var1': 'A1', 'var2': 'x', 'var3':'abc1'},
{'var1': 'x', 'var2': 'y', 'var3':'abc1'},
{'var1': 'y', 'var2': 'z', 'var3':'abc1'},
{'var1': 'B', 'var2': 'xx', 'var3':'abc2'},
{'var1': 'xx', 'var2': 'yy', 'var3':'abc2'},
{'var1': 'c', 'var2': 'zz', 'var3':'abcd'}])

var1 var2 var3
0 A A1 abc1
1 A1 x abc1
2 x y abc1
3 y z abc1
4 B xx abc2
5 xx yy abc2
6 c zz abcd

有人可以帮忙吗?

谢谢

最佳答案

尝试使用explode

df=df_input.assign(var2=df_input.var2.str.split('/')).explode('var2')
var1 var2 var3
0 A x abc1
0 A y abc1
0 A z abc1
1 B xx abc2
1 B yy abc2
2 c zz abcd

然后groupby + shift

df.var1=df.groupby(level=0).var2.shift().fillna(df.var1)
df
var1 var2 var3
0 A x abc1
0 x y abc1
0 y z abc1
1 B xx abc2
1 xx yy abc2
2 c zz abcd

关于python - 将 Pandas 数据框字符串拆分为单独的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62825570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com