[英]Create a dataframe based on column values of another dataframe
我有一个数据框为20000 X50。两列是日期和时间(表示为小时)。 其余列在这段时间内观察到一些参数。 我要实现的目标是创建一个新的数据框,该框将每天每3小时的所有剩余列值取平均值,并为此创建一个ID列,该ID列可以是1到8之间的数字。每个ID列代表3个小时的范围。 我已经附上了源图像以及应该产生的结果。 很感谢任何形式的帮助。 数据
使用groupby
by列Date
和column Hour
由sub
by 1
和floordiv
创建,并且add
与合计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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.