我的数据帧为20000 X 50.其中两列是日期和时间(以小时表示)。剩余的列在此期间对某些参数进行了观察。我想要实现的是创建一个新的数据帧,每天每3小时平均所有剩余的列值,并为此创建一个ID列,可以是1到8的数字。每个代表3小时范围。 我附上了一张关于来源的图片以及应该得到的结果。很感谢任何形式的帮助。 Data
答案 0 :(得分:0)
使用Date
列的groupby
和Hour
1
以及sub
floordiv
创建的列mean
df['Hour'] = df['Hour'].sub(1).floordiv(3).add(1)
df = df.groupby(['Date', 'Hour'], as_index=False).mean()
print (df)
Date Hour col1 col2 col3
0 05/01/2018 1 5.333333 5.333333 7.666667
1 05/01/2018 2 6.000000 6.000000 4.000000
2 06/01/2018 1 4.000000 6.333333 7.000000
3 06/01/2018 3 6.000000 6.000000 3.666667
:
print (df['Hour'].sub(1).floordiv(3).add(1))
0 1
1 1
2 1
3 2
4 1
5 1
6 1
7 3
8 3
9 3
Name: Hour, dtype: int64
详情:
Array(
[deselected_attachment_ids] => Array
(
[0] => 16883477_12869438
[1] => 16883478_12869439
)
)