【发布时间】:2020-05-16 01:54:49
【问题描述】:
我对 pandas 比较陌生,希望你能帮帮我;-)
我想按 name_id 和 datetime 对 pandas 数据框进行分组,同时添加缺少的日期时间值 (NaN)。
输入示例:
name_id datetime value
A 23/01/2020 0:00:00 100
A 23/01/2020 1:00:00 98
A 23/01/2020 2:00:00 96
A 23/01/2020 3:00:00 99
A 23/01/2020 3:00:00 99
A 23/01/2020 4:00:00 98
A 23/01/2020 5:00:00 99
B 23/01/2020 0:00:00 144
B 23/01/2020 1:00:00 324
B 23/01/2020 2:00:00 367
B 23/01/2020 3:00:00 368
B 23/01/2020 6:00:00 364
首先,我需要根据name_id 完成缺失的日期时间值。如果某一天(00:00 到 23:00)有任何缺失的时间,请添加该小时的新行和对应的 Nan '值'。
我还需要删除重复项。由于时间变化,有些日子可能是 25 小时,所以我需要在这个小时/天和name_id 删除它们。
输出是这样的:
name_id date v
A 2020-01-23 [132, 76, 56, 77, 81, 100, NaN, Nan, ......]
B 2020-01-23 [44, 24, 165, 267, NaN, Nan, 263, Nan, Nan...]
我在这里发现了一个类似的案例,但是当我应用这部分代码时它对我不起作用,它删除了我的 name_id 列:-(
Group by and fill missing datetime values with duplicates?
df1 = (
df.reset_index('name_id')
.groupby('name_id')['value']
.apply(f)
.reset_index()
)
提前致谢!
【问题讨论】:
标签: pandas python-2.7 pandas-groupby