pandas - 数据框。按日期将列拆分为其他列
问题描述
有一个数据框:
d = {'date' : ['2020-02-01', '2020-02-01', '2020-02-01', '2020-02-01', '2020-02-02', '2020-02-02', '2020-02-02'], 'type' : ['Bird', 'Dog', 'Cat', 'Bird', 'Dog', 'Cat', 'Bird'], 'weight' : [1, 2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(d)
我想按类型的值拆分“类型”列并获取列 - 鸟、狗、猫。并且这些列中的值必须是同一天的鸟、狗等的平均重量。
得到这样的东西。
date bird dog cat
2020-02-01 ... ... ...
2020-02-02 ... ... ...
我开始尝试分组,但无法弄清楚。也许在“类型”列中按 val 拆分数据帧并再次合并获得的数据帧?
解决方案
使用pivot_table
并应用于mean
具有相同索引/列的聚合值:
out = df.pivot_table(index='date', columns='type', values='weight', aggfunc='mean') \
.rename_axis(columns=None).reset_index()
print(out)
# Output:
date Bird Cat Dog
0 2020-02-01 2.5 3.0 2.0
1 2020-02-02 7.0 6.0 5.0
推荐阅读
- php - 如何在 laravel 的请求类中使用 if/else
- javascript - 什么时候应该使用 componentDidMount?
- scala - Spark 的分层凝聚聚类
- ckeditor - 内联编辑器 - 禁用编辑器并显示 HTML / 渲染内容 (Vue)
- java - 使用 DoubleUnaryOperator 与函数
- java - 如何在 Appium 上使用 Jbehave 和 Junit 截屏失败?
- android - 我们如何在 android 中为 exoplayer 添加混响效果
- solr - Apache solr - 为该字段找到的结果数
- python - 处理不同的日期格式python?
- php - 在 Laravel 7 中仅捕获一个特定错误