【问题标题】:Calculate the average values of a column that has duplicate timestamps in python?计算python中具有重复时间戳的列的平均值?
【发布时间】:2020-08-07 14:52:56
【问题描述】:

我有以下数据框:

 df_temperature_value = {'timestamp': ['2020-08-08 12:00:00', '2020-08-08 13:00:00', '2020-08-08 14:00:00',
                                          '2020-08-09 12:00:00', '2020-08-09 13:00:00', '2020-08-09 14:00:00',
                                          '2020-08-08 12:00:00', '2020-08-08 13:00:00', '2020-08-08 14:00:00', 
                                          '2020-08-09 12:00:00', '2020-08-09 13:00:00', '2020-08-09 14:00:00'],
                      'locations':[1,1,1,1,1,1,2,2,2,2,2,2,],
                      'value':[20,21,22,23,24,25,16,17,18,19,20,21]
                     }

df_temperature_value= pd.DataFrame(df_temperature_value)
df_temperature_value['timestamp'] = pd.to_datetime(df_temperature_value["timestamp"])

我在这里尝试实现的是找到每个重复时间戳的平均值。

快速示例:位置 1 在 2020-08-08 12:00:00 的值 = 20,而位置 2 在同一持续时间的值等于 16。所以我需要找到这段时间的平均值这将是 18 岁。

我的最终数据框应如下所示:

  final_dataframe = {'timestamp': ['2020-08-08 12:00:00', '2020-08-08 13:00:00', '2020-08-08 14:00:00',
                                          '2020-08-09 12:00:00', '2020-08-09 13:00:00', '2020-08-09 14:00:00'],
                      'average_values':[18,19,20,21,22,23]
                     }
    final_dataframe = pd.DataFrame(final_dataframe)

我尝试做的是:

final_dataframe = df_temperature_value.set_index('timestamp').resample('H').min().reset_index()

但这并没有给我我想要的输出。最好的方法是什么。有pythonic的方式吗?提前感谢您的帮助。

【问题讨论】:

  • 使用df_temperature_value.groupby('timestamp')['value'].mean()
  • @ShubhamSharma 非常感谢。这就是我所需要的。

标签: python pandas


【解决方案1】:

使用df_temperature_value.groupby('timestamp')['value'].mean()

Steal comments that answer the question and post them as an answer

【讨论】:

    猜你喜欢
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2016-05-22
    相关资源
    最近更新 更多