Python 将字符串列与日期范围相乘

Python multiply string column with daterange

我有一个如下所示的数据框:

list_name
---------
list1
list2
...

我尝试将每一行与一个日期范围相乘:

start = datetime.date(2019, 1, 1)
end = datetime.date(2025, 1, 1)
daterange = pd.date_range(start, end)

想要的结果如下:

list_name|   date
---------|  --------
list1    |  2019-01-01
list1    |  2019-01-02
list1    |  2019-01-03
  ...    |       ...
list1    |  2025-01-01
list2    |  2019-01-01
list2    |  2019-01-02
list2    |  2019-01-03
  ...    |       ...
list2    |  2025-01-01

我不确定如何将它展开成行。

解决方案,感谢@QuangHoang的评论:

from itertools import product

pd.DataFrame(list(product(df.list_name, daterange)), columns=['list_name', 'date'])

您可以使用 pd.merge(how = 'cross') 来实现此目的

df = pd.DataFrame({
    'list_name' : ['list1', 'list2']
})
start = datetime.date(2019, 1, 1)
end = datetime.date(2025, 1, 1)
daterange = pd.DataFrame(pd.date_range(start, end))
pd.merge(df, daterange, how = 'cross')df = pd.DataFrame({
    'list_name' : ['list1', 'list2']
})
start = datetime.date(2019, 1, 1)
end = datetime.date(2025, 1, 1)
daterange = pd.DataFrame(pd.date_range(start, end))
pd.merge(df, daterange, how = 'cross')