首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GroupBy值在DataFrame中,并得到一个由逗号分隔的单词列表

GroupBy值在DataFrame中,并得到一个由逗号分隔的单词列表
EN

Stack Overflow用户
提问于 2018-05-03 11:43:26
回答 1查看 438关注 0票数 0

如图所示,我有一只熊猫。在这个框架中有更多的列与任务无关。

代码语言:javascript
复制
id    pos      value       sente
1     a         I           21
2     b         have        21
3     b         a           21
4     a         cat         21
5     d         !           21
1     a         My          22
2     a         cat         22
3     b         is          22
4     a         cute        22
5     d         .           22

现在,我想对sente=sente中的所有行进行分组,并加入值中的单词,以便在列表中形成一个句子。因此,输出应该如下所示(一个由逗号分隔的字符串列表):

“我有只猫!”,“我的猫很可爱。”

我认为第一步是使用groupby("sente")

fill = (df.groupby("sente").apply(lambda df: df["value"].values)).reset_index().rename(columns={0: "content"})

fill = [word for word in fill["content"]

然而,这样做我得到了这个输出:

print(fill):

[array(['I','have','a','cat','!'],dtype=object), array(['My','cat','is','cute','.'],dtype=object)]

有没有办法连接句子中的所有单词而不将它们标记为单独的字符串,并删除数组和dtype部件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-03 11:52:49

您需要加入所有的值,而不需要按空格进行最后的连接,然后追加它:

代码语言:javascript
复制
L = (df.groupby("sente")['value']
       .apply(lambda x: ' '.join(x.iloc[:-1]) + x.iloc[-1])
       .tolist())
print (L)
['I have a cat!', 'My cat is cute.']

因为在!.之前没有必要的空间

代码语言:javascript
复制
print (df.groupby("sente")['value'].apply(' '.join).tolist())
['I have a cat !', 'My cat is cute .']
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50154261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档