【发布时间】:2019-03-11 15:43:55
【问题描述】:
目前有一个数据集结构如下:
id_number start_date end_date data1 data2 data3 ...
基本上,我有一大堆具有特定日期范围的 id,然后是多列摘要数据。我的问题是我需要汇总数据的年度总数。这意味着我需要到达一个可以按年份对每个文档的一次出现进行分组的地方。但是,不能保证给定年份的文档存在,并且日期范围可以跨越多年。任何帮助将不胜感激,我很困惑。
示例数据框:
df = pd.DataFrame([[1, '3/10/2002', '4/12/2005'], [1, '4/13/2005', '5/20/2005'], [1, '5/21/2005', '8/10/2009'], [2, '2/20/2012', '2/20/2015'], [3, '10/19/2003', '12/12/2012']])
df.columns = ['id_num', 'start', 'end']
df.start = pd.to_datetime(df['start'], format= "%m/%d/%Y")
df.end = pd.to_datetime(df['end'], format= "%m/%d/%Y")
【问题讨论】:
-
如果记录跨越一年以上,这对总数意味着什么? / 你想怎么对付他们? (或者这是你的问题?)
-
查看您的数据我想知道您将如何区分不同年份的数据。例如,
id_number43482 的start_date为 2017 年 2 月 3 日,end_date为 2019 年 3 月 10 日,data1为 119。你怎么知道 2018 年的数据是什么?我需要更多信息。 -
当然,所以如果它跨越多年,那么该数据在跨越的年份应该保持不变。因此,如果一个 id 跨越 2005-2007 年,然后在 2008 年发生变化,那么 2005 年、2006 年和 2007 年的数据应该相同,然后在 2008 年发生变化。
-
MacItaly,这里的假设是如果有意义的话,数据在每个条目的时间段内保持不变。
-
如果您可以提供带有
pd.DataFrame(...)的示例数据框,将更容易为我们解答:stackoverflow.com/questions/20109391/…
标签: python pandas date datetime