每个ID都有一条记录,包含开始日期和结束日期
id age state start_date end_date
123 18 CA 2/17/2019 5/4/2019
223 24 AZ 1/17/2019 3/4/2019
我想为开始日和结束日之间的每一天创建一条记录,以便将每日活动数据连接到该记录。
id age state start_date
123 18 CA 2/17/2019
123 18 CA 2/18/2019
123 18 CA 2/19/2019
123 18 CA 2/20/2019
123 18 CA 2/21/2019
…
123 18 CA 5/2/2019
123 18 CA 5/3/2019
123 18 CA 5/4/2019
当然,对数据集中的所有ID和它们各自的开始日期都要这样做。任何帮助都是非常感谢的-谢谢!
2条答案
按热度按时间6xfqseft1#
DataFrame.apply
与pd.date_range
和DataFrame.explode
一起使用几乎快了3倍:原始答案:
一米三纳一x,一米四纳一x,一米五纳一x和一米六纳一x
首先,我们将两个日期列
melt
(反透视)为一列,然后按天resample
:pbpqsu0x2#
对列
start_date
和end_date
的值使用listcomp和pd.date_range
,为每个记录创建日期列表。接下来,根据listcomp的结果构造新的 Dataframe ,并联接回df
的其他3列。最后,联接回set_index
、stack
和reset_index