我有一个“开始日期”和“结束日期”列。我想将每行转换为X行,每个包含日期都包含一个行

问题描述 投票:0回答:1

我陷入了一个小的数据转换问题。这是我的数据:

    start_date  end_date   ticket   info
    1/1/2020    1/3/2020   A        A_info
    1/5/2020    1/10/2020  B        B_info

而且我希望将其转换成这样的格式:

    ticket  date      info 
    A       1/1/2020  A_info
    A       1/2/2020  A_info
    A       1/3/2020  A_info
    B       1/5/2020  B_info
    B       1/6/2020  B_info
    ...
    B       1/10/2020 B_info

每个项目的行数对应于提供的初始间隔中的一天。我发现一旦以这种格式加载到BI系统中,就更容易进行编辑/分析。在大熊猫中最简单的方法是什么?通过执行以下操作,我已经获得了每一行的日期数组:

dates = [start + datetime.timedelta(days=x) for x in range((end-start).days)]

但是迭代行并以适当的日期扩展/复制行的最快方法是什么?

python pandas date intervals
1个回答
0
投票

DataFrame.itertuplesDataFrame.itertuples一起用于展开行,然后将Series转换为具有交换值和索引的DataFrame,并使用concat来添加所有其他列,最后删除不必要的列:

concat
© www.soinside.com 2019 - 2024. All rights reserved.