python - 按名称分组然后按日期排序后连接字符串
问题描述
我在数据框中有这些数据
data = [
{'name' : 'a', 'date' : '2020-01-02', 'message' : 'there'},
{'name' : 'b', 'date' : '2020-01-01', 'message' : 'Hello'},
{'name' : 'a', 'date' : '2020-01-01', 'message' : 'Hi'},
{'name' : 'b', 'date' : '2020-01-03', 'message' : 'everyone'},
{'name' : 'c', 'date' : '2020-01-05', 'message' : 'Test'}
]
我想做的是按名称分组,然后按日期排序,并为每个名称连接消息,以便数据看起来像这样
[
{'name' : 'a', 'message' : 'Hi there'},
{'name' : 'b', 'message' : 'Hello everyone'},
{'name' : 'c', 'message' : 'Test'}
]
我已经能够使用这个按名称分组并按日期排序(在将字符串变成日期时间对象之后)
df.groupby(['name']).apply(lambda x: x.sort_values(['date'])
但是我不确定在对数据进行分组和排序后如何将字符串连接在一起。
解决方案
尝试apply
_join
df.sort_values('date').groupby('name')['message'].apply(' '.join).reset_index()
name message
0 a Hi there
1 b Hello everyone
2 c Test
推荐阅读
- regex - Jmeter - 正则表达式提取器忽略新行
- asp.net-core-mvc - 改变与实体框架核心的关系
- laravel - 如何在托管在 cpanel 中的 laravel 中手动添加 dompdf 包
- c# - 具有大量元组的实体框架最佳实践
- python - PySNMP 缺少文件
- python - Django 提示:发生服务器错误。请联系管理员
- javascript - 我可以得到一个对象,但不是它在 JS 中的属性
- mysql - 将 MySQL 中的一个单元格分配给多个记录
- javascript - 如何解决这个错误 JSONEditor is not defined ESlint
- javascript - 与另一个变量 jquery 相比,DropDownList 中的突出显示或粗体选项