我陷入了一个小的数据转换问题。这是我的数据:
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)]
但是迭代行并以适当的日期扩展/复制行的最快方法是什么?
将DataFrame.itertuples
与DataFrame.itertuples
一起用于展开行,然后将Series转换为具有交换值和索引的DataFrame,并使用concat
来添加所有其他列,最后删除不必要的列:
concat