首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫Python:附加数据框架-文本

熊猫Python:附加数据框架-文本
EN

Stack Overflow用户
提问于 2019-06-11 19:31:51
回答 2查看 55关注 0票数 1

假设我有以下数据框架。如何在同一天追加对应于同一用户的行?Python-Pandas

代码语言:javascript
运行
复制
user date text
A    1-1  how
A    1-1  are
A    3-1  the dog
B    1-2  hi
B    1-2  there
B    3-2  be good


user date text
A    1-1  how are
A    3-1  the dog
B    1-2  hi there
B    3-2  be good
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-11 19:36:12

您正在寻找groupby和string联接:

代码语言:javascript
运行
复制
df.groupby(['user','date'])['text'].apply(' '.join).reset_index()

注意:' '.joinlambda x: ' '.join(x)的较短版本。

完整的例子:

代码语言:javascript
运行
复制
import pandas as pd

data = '''\
user,date,text
A,1-1,how
A,1-1,are
A,3-1,the dog
B,1-2,hi
B,1-2,there
B,3-2,be good'''

fileobj = pd.compat.StringIO(data)
df = pd.read_csv(fileobj, sep=',')

df = df.groupby(['user','date'])['text'].apply(' '.join).reset_index()
print(df)

返回:

代码语言:javascript
运行
复制
  user date      text
0    A  1-1   how are
1    A  3-1   the dog
2    B  1-2  hi there
3    B  3-2   be good

如果有帮助的话,也可以看看这个。将列表中的所有项目分组的快速版本。

代码语言:javascript
运行
复制
print(df.groupby(['user','date'])['text'].apply(list).reset_index())
#  user date         text
#0    A  1-1   [how, are]
#1    A  3-1    [the dog]
#2    B  1-2  [hi, there]
#3    B  3-2    [be good]
票数 1
EN

Stack Overflow用户

发布于 2019-06-11 19:59:26

您可以使用函数pivot_table()

代码语言:javascript
运行
复制
df.pivot_table(index=['user', 'date'], values='text', aggfunc=' '.join).reset_index()

结果:

代码语言:javascript
运行
复制
  user date      text
0    A  1-1   how are
1    A  3-1   the dog
2    B  1-2  hi there
3    B  3-2   be good
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56550593

复制
相关文章

相似问题

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