繁体   English   中英

根据另一个数据框的列值创建一个数据框

[英]Create a dataframe based on column values of another dataframe

我有一个数据框为20000 X50。两列是日期和时间(表示为小时)。 其余列在这段时间内观察到一些参数。 我要实现的目标是创建一个新的数据框,该框将每天每3小时的所有剩余列值取平均值,并为此创建一个ID列,该ID列可以是1到8之间的数字。每个ID列代表3个小时的范围。 我已经附上了源图像以及应该产生的结果。 很感谢任何形式的帮助。 数据

使用groupby by列Date和column Hoursub by 1floordiv创建,并且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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM