python - 在 groupby 之后的列中创建值
问题描述
我有一个数据框,它是在按“小时”和“站点”列分组初始数据框后获得的。因此,当前数据框具有按“小时”和“站点”分组的“价值”详细信息。我想要的是用零填充没有“价值”的小时。“小时”范围是 0-23。我怎样才能做到这一点?
左边是输入,右边是预期输出
解决方案
你可以试试这个:
import numpy as np
import pandas as pd
raw_df = pd.DataFrame(
{
"Hour": [1, 2, 4, 12, 0, 2, 7, 13],
"Site": ["x", "x", "x", "x", "y", "y", "y", "y"],
"Value": [1, 1, 1, 1, 1, 1, 1, 1],
}
)
full_hour = pd.DataFrame(
{
"Hour": np.concatenate(
[range(24) for site_name in raw_df["Site"].unique()]
),
"Site": np.concatenate(
[[site_name] * 24 for site_name in raw_df["Site"].unique()]
),
}
)
result = full_hour.merge(raw_df, on=["Hour", "Site"], how="left").fillna(0)
然后你就可以得到你想要的。但我建议您在问题中复制测试数据而不是图像。您知道,我们没有责任创建您的数据。您应该更多地考虑如何让别人轻松地回答您的问题。
推荐阅读
- sql - 如何在 SQL Server 中自动执行备份验证
- java - 使用两个线程打印序列时出现java死锁
- stm32f0 - STM32F042G6 不会跳转到引导加载程序
- android - Android 错误“无法为 com.android.build.gradle.internal.dsl.BaseAppModuleExtension 类型的对象设置未知属性‘useAndroidX’”
- c++ - 读取浮点数的字值(十六进制)
- javascript - Safari 不尊重 CSS 变换原点,`transform-box: fill-box` 无济于事
- vue.js - Vue 似乎比预期更频繁地调用所有自定义指令。为什么,这可以避免吗?
- fortran - 在 Fortran2018 中返回派生类型的向上转换函数指针
- kubernetes - 我可以通过指向特定服务器而不是本地主机的域名访问我的 Kubernetes 仪表板吗
- javascript - 部署 Firebase 功能时出错:找不到模块