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

时间:2018-01-11 14:29:06

标签: python pandas pandas-groupby

我的数据帧为20000 X 50.其中两列是日期和时间(以小时表示)。剩余的列在此期间对某些参数进行了观察。我想要实现的是创建一个新的数据帧,每天每3小时平均所有剩余的列值,并为此创建一个ID列,可以是1到8的数字。每个代表3小时范围。 我附上了一张关于来源的图片以及应该得到的结果。很感谢任何形式的帮助。 Data

1 个答案:

答案 0 :(得分:0)

使用Date列的groupbyHour 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
    )
)