python - 计算一系列日期的值然后在 python 中绘制它的最佳方法是什么?
问题描述
我开始使用python和pandas,需要创建一个带有底部日期的图表,以及每个日期四个事件的频率:诊断计数;如果在隔离期间进行诊断;诊断未隔离;最终计数隔离在没有诊断的情况下结束。基本数据如下所示:
import pandas as pd
import numpy as np
import datetime
data = [{'diag': False, 'diagDate': np.nan, 'QStart': datetime.datetime(2020, 11, 20), 'QEnd': datetime.datetime(2020, 12, 10)},\
{'diag' : True, 'diagDate': datetime.datetime(2020, 12, 11), 'QStart': datetime.datetime(2020, 12, 10), 'QEnd': datetime.datetime(2020, 12, 24)},\
{'diag' : True, 'diagDate': datetime.datetime(2020, 12, 11), 'QStart': datetime.datetime(2020, 11, 1), 'QEnd': datetime.datetime(2020, 11, 14)},\
{'diag' : True, 'diagDate': datetime.datetime(2020, 12, 11), 'QStart': np.nan, 'QEnd': np.nan},\
{'diag' : False, 'diagDate': np.nan, 'QStart': datetime.datetime(2020, 11, 20), 'QEnd': datetime.datetime(2020, 12, 11)}]
rng1 = pd.date_range('2015-02-24', periods=5, freq='D')
df_counts = pd.DataFrame({ 'Date': rng1})
在 Excel 中,我会创建一列日期,然后使用每个日期作为 sumproduct 的一部分来测试数据表中的每一行的各种条件。每个日期的总诊断如下所示:
=sumproduct(--(dataTable!diag_value = "True"),--(countTable!date_index = dataTable!diagDateColumn))
我不确定这是否是使用 python/pandas 时的正确方法。如果是,那么我可以轻松地创建一个具有相关日期的 DataFrame,如下所示:
rng1 = pd.date_range('2020-12-09', periods=7, freq='D')
df_counts = pd.DataFrame({ 'Date': rng1})
我不知道该怎么做是使用这个新表行中的日期作为条件来计算另一个数据框中的值?输出应该是:
Date Cases CasesinQ CasesNotinQ Qended
0 2020-12-09 0 0 0 0
1 2020-12-10 0 0 0 1
2 2020-12-11 3 1 2 1
3 2020-12-12 0 0 0 0
我希望这张表是一个很好的绘图数据框(? - 这将是我第一次使用 python 绘图)。
我尝试过 len 和 count,但它们没有传递每一行值(日期)来计算它在数据数据帧中出现的频率。
解决方案
推荐阅读
- facebook - 从 Facebook 视频中获取缩略图的最佳方式是什么
- excel - Power Query read multiple ranges from multiple sheets
- flutter - Flutter 桌面文件选择器结果文件。字节返回 null 错误?
- mysql - 在 Java Spring Boot 中使用来自 MySQL 的数据填充 jsp 页面中的下拉列表
- python - 如何确保我的 python 包在它自己的目录中查找文件,而不是在我运行的位置?
- pandas - 如何在分组后将熊猫行显示为列
- python - Seaborn 热图 - 要显示的行和列统计信息
- terraform - Terraform 如何访问元素
- android - 长按回收站查看项目动画
- python - pyspark 中的日期格式