每天创建一个新行 (pd.date_range) - 合并、加入还是合并?

Create a new row for each day (pd.date_range) - Merge, Join or Concat?

我正在尝试通过“乘以”另外两个来创建数据框。 让我向您展示我尝试过的事情。

1 - 从数据范围创建数据框

df_dates = pd.DataFrame({'date_prediciton':pd.date_range(start='2021-08-01', end='2021-08-31', freq='W-SUN')})
df_dates.head()
    date_prediciton
0   2021-08-01
1   2021-08-08
2   2021-08-15
3   2021-08-22
4   2021-08-29

2 - 创建客户数据框

client = ['101', '102', '103', '104']
df_clients = pd.DataFrame(data=client, columns=['client'])
df_clients.head()

client
0   101
1   102
2   103
3   104

3 - 然后需要“相乘”(这可能不是正确的表达方式),每个客户端到日期范围

您可以使用 pd.MultiIndex.from_product 来创建两者的笛卡尔积:

print (pd.MultiIndex.from_product([client, df_dates["date_prediciton"]]).to_frame(index=0, name=["client", "date"]))

   client       date
0     101 2021-08-01
1     101 2021-08-08
2     101 2021-08-15
3     101 2021-08-22
4     101 2021-08-29
5     102 2021-08-01
6     102 2021-08-08
7     102 2021-08-15
8     102 2021-08-22
9     102 2021-08-29
10    103 2021-08-01
11    103 2021-08-08
12    103 2021-08-15
13    103 2021-08-22
14    103 2021-08-29
15    104 2021-08-01
16    104 2021-08-08
17    104 2021-08-15
18    104 2021-08-22
19    104 2021-08-29