如何从pandas数据框中的每日大型JSON数据集中计算平均每月价值?

皮比卡斯

我刚开始使用pandas数据框读取数据,但是在处理数据集时遇到了一些麻烦。我已经阅读过许多其他关于类似问题的StackOverflow帖子,但是由于我的JSON数据的结构,我在将这些解决方案应用于我的案例时遇到了麻烦。排列在数据框中的JSON数据df = pd.DataFrame.from_records(data)通常如下所示

             dateTime                          value
0   01/16/20 04:32:42   {'bpm': 70, 'confidence': 0}
1   01/16/20 04:32:57   {'bpm': 70, 'confidence': 0}
2   01/16/20 04:33:12   {'bpm': 70, 'confidence': 1}
等等,以获取许多日常价值。

我的目标是读取所有这些原始的每日数据,并计算“ bpm”的每月平均值,并绘制成matplot图。我的问题是我在使用pandas datetime或mean()操作时遇到问题,因为我不认为pandas在datetime中实际上接受我的dateTime格式,当我尝试使用mean()时,它给了我一个pandas.core.base.DataError: No numeric types to aggregate错误。

如何使用内置的熊猫工具通过将基于月的每日值分组在一起来计算月平均值?

for file in os.listdir(data_dir):  # look at every file in the folder
    if file.startswith("heart_rate") and file.endswith(".json"):  # only want heart_rate-date.json files
        with open(os.path.join(data_dir, file)) as f:  # open each file in data_dir
            data = json.load(f)
            df = pd.DataFrame.from_records(data)
            print(df)
            #df.dateTime = pd.to_datetime(df.dateTime)
            #df['Month'] = df['dateTime'].dt.month
            for i, j in enumerate(data):
                if data[i]['value']['confidence'] > 0:
                    daily_avg_bpm += data[i]['value']['bpm']
                    daily_date = data[i]['dateTime'].split()[0]
                    my_date = datetime.datetime.strptime(daily_date, "%m/%d/%y").date()
                    days.append(my_date)
            months.append(daily_date[:2])
            daily_avg_bpm /= len(data)
            dates.append(daily_date)
            avg_bpms.append(round(daily_avg_bpm))
        f.close()
plt.xlabel('Month')
plt.ylabel('Heart Rate')
plt.title("Fitbit Heart Rate")
for i, j in enumerate(dates):
    plt.plot(dates[i], avg_bpms[i])
plt.show()

Prayson W. Daniel

将其转换values为列并转换dateTime为实际日期时间的最简单方法有了它,您可以resample用来汇总所需的频率:

import pandas as pd

data = pd.DataFrame({'dateTime':[ '01/16/20 04:32:42', '01/16/20 04:32:57', '02/16/20 04:33:12', '03/16/20 04:33:12'],
'value': [{'bpm': 70, 'confidence': 0}, {'bpm': 75, 'confidence': 0},  
          {'bpm': 73, 'confidence': 1}, {'bpm': 78, 'confidence': 1}]})

# expland 
df = data['value'].apply(pd.Series)

# to datetime and set index 
df['dateTime'] = pd.to_datetime(data['dateTime'])
df.set_index('dateTime', inplace=True)

# data resample to Monthy with mean 
example = df.resample('M', kind='period').mean()

# plot
example['bpm'].plot(title="Fitbit Heart Rate", xlabel="Month", ylabel="Heart Rate");

注意:

对于要显示的图形,请确保您具有所选频率的N> 1的数据。因此,如果一个月的频率为“ M”,请确保数据集中至少有2个月。

阅读 Pandasresample 文档以获取更多详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 Pandas 数据框计算当前、最小、最大、平均每月增长

来自分类Dev

根据Python / Pandas中不稳定的每月数据量度来估算每日价值

来自分类Dev

从几年的每日临时数据框中获取每月平均值

来自分类Dev

SAS 4GL-如何从不连续数据集中计算每周库存价值差异?

来自分类Dev

SAS 4GL-如何从不连续数据集中计算每周库存价值差异?

来自分类Dev

如何从CVS连续数据集中计算平均值/分钟?

来自分类Dev

从 python pandas 中的数据框中计算不同的单词

来自分类Dev

在Python Pandas数据框中计算MRR

来自分类Dev

从数据框中计算每日参数,其中包含行中的小时值和几列感兴趣的列

来自分类Dev

在Pandas数据框中计算缺少值的分组数据

来自分类Dev

在MATLAB中计算时间序列数据的每周(或每月)平均值

来自分类Dev

从大型点数据集中计算附近点的最快方法是什么

来自分类Dev

从大型点数据集中计算附近点的最快方法是什么

来自分类Dev

如何从 JavaScript 中每小时值的数据集计算每日平均值

来自分类Dev

如何提高大型数据集中Python计算的速度?

来自分类Dev

如何计算数据框中的平均值?

来自分类Dev

VBA:根据每日价值计算每月回报

来自分类Dev

如何从表数据库中计算平均值

来自分类Dev

Pandas DataFrame中每月平均每日记录数

来自分类Dev

如何根据日期从PHP中的数据库中计算平均值

来自分类Dev

在Pandas数据框中计算连续数量的Null值

来自分类Dev

如何在Pandas数据框中计算汇总的摘要统计信息

来自分类Dev

如何从包含(部分)每日数据的工作表中获取最终的每月数据

来自分类Dev

如何在python / pandas中的大型数据框中过滤出联合数据?

来自分类Dev

如何使用json数据计算Angular中的平均值

来自分类Dev

如何在PySpark数据帧中计算每日基准(时间序列)

来自分类Dev

如何在Rstudio中删除大型数据集中的变量?

来自分类Dev

从数据列表中计算平均值

来自分类Dev

在Matlab中计算时间平均数据

Related 相关文章

  1. 1

    从 Pandas 数据框计算当前、最小、最大、平均每月增长

  2. 2

    根据Python / Pandas中不稳定的每月数据量度来估算每日价值

  3. 3

    从几年的每日临时数据框中获取每月平均值

  4. 4

    SAS 4GL-如何从不连续数据集中计算每周库存价值差异?

  5. 5

    SAS 4GL-如何从不连续数据集中计算每周库存价值差异?

  6. 6

    如何从CVS连续数据集中计算平均值/分钟?

  7. 7

    从 python pandas 中的数据框中计算不同的单词

  8. 8

    在Python Pandas数据框中计算MRR

  9. 9

    从数据框中计算每日参数,其中包含行中的小时值和几列感兴趣的列

  10. 10

    在Pandas数据框中计算缺少值的分组数据

  11. 11

    在MATLAB中计算时间序列数据的每周(或每月)平均值

  12. 12

    从大型点数据集中计算附近点的最快方法是什么

  13. 13

    从大型点数据集中计算附近点的最快方法是什么

  14. 14

    如何从 JavaScript 中每小时值的数据集计算每日平均值

  15. 15

    如何提高大型数据集中Python计算的速度?

  16. 16

    如何计算数据框中的平均值?

  17. 17

    VBA:根据每日价值计算每月回报

  18. 18

    如何从表数据库中计算平均值

  19. 19

    Pandas DataFrame中每月平均每日记录数

  20. 20

    如何根据日期从PHP中的数据库中计算平均值

  21. 21

    在Pandas数据框中计算连续数量的Null值

  22. 22

    如何在Pandas数据框中计算汇总的摘要统计信息

  23. 23

    如何从包含(部分)每日数据的工作表中获取最终的每月数据

  24. 24

    如何在python / pandas中的大型数据框中过滤出联合数据?

  25. 25

    如何使用json数据计算Angular中的平均值

  26. 26

    如何在PySpark数据帧中计算每日基准(时间序列)

  27. 27

    如何在Rstudio中删除大型数据集中的变量?

  28. 28

    从数据列表中计算平均值

  29. 29

    在Matlab中计算时间平均数据

热门标签

归档