gpt4 book ai didi

python - 如何为pandas中的每个逗号分隔值创建一个新行

转载 作者:行者123 更新时间:2023-12-01 06:36:27 25 4
gpt4 key购买 nike

我有一个像这样的数据框:

text                     text2           category 
sfsd sgvv sfsdfdf abc,xyz
zydf sefs sdfsd drdg yyy
dfsd dsrgd dggr dgd xyz
eter vxg wfe fs abc
dfvf ertet dggdss abc,xyz,bbb

我想要这样的输出:

text                     text2           category 
sfsd sgvv sfsdfdf abc
sfsd sgvv sfsdfdf xyz
zydf sefs sdfsd drdg yyy
dfsd dsrgd dggr dgd xyz
eter vxg wfe fs abc
dfvf ertet dggdss abc
dfvf ertet dggdss xyz
dfvf ertet dggdss bbb

基本上为 category 列中的每两个或多个类别创建一个新行。

我尝试过这个:

df1 = (df.assign(category = df['category'].str.split(','))
.explode('category')
.reset_index(drop=True))

但它似乎创建了比预期更多的行。在我原来的 df 中,我有很多列,而不仅仅是 text、text2、category。

我的原始数据框的屏幕截图。

此处类别 = NER_Category

enter image description here

这是代码的输出:

enter image description here

最佳答案

这应该可以做到:

(df.set_index(df.columns.drop('category',1).tolist())['category']
.str.split(',', expand=True)
.stack()
.reset_index()
.rename(columns={0:'category'})
.loc[:, df.columns]
)

text text2 category
0 sfsd sgvv sfsdfdf abc
1 sfsd sgvv sfsdfdf xyz
2 zydf sefs sdfsd drdg yyy
3 dfsd dsrgd dggr dgd xyz
4 eter vxg wfe fs abc
5 dfvf ertet dggdss abc
6 dfvf ertet dggdss xyz
7 dfvf ertet dggdss bbb

关于python - 如何为pandas中的每个逗号分隔值创建一个新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59646655/

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