【发布时间】:2021-01-05 14:36:26
【问题描述】:
我正在尝试合并下面的 2 个 DataFrame 以获得一个输出,其中每个代码都在每个日期列出,如果该代码不在该日期的原始数据框中,则数量填充为 0。我在下面放了一个输入和所需输出的示例,但我的实时数据将包含超过一年的日期和超过 20,000 个代码。
输入数据:
df1
date
0 2021-05-03
1 2021-05-04
2 2021-05-05
3 2021-05-06
4 2021-05-07
5 2021-05-08
6 2021-05-09
7 2021-05-10
df2
date code qty
0 2021-05-03 A 2
1 2021-05-06 A 5
2 2021-05-07 A 4
3 2021-05-08 A 5
4 2021-05-10 A 6
5 2021-05-04 B 1
6 2021-05-08 B 4
期望的输出:
date code qty
03/05/2021 A 2
03/05/2021 B 0
04/05/2021 A 0
04/05/2021 B 1
05/05/2021 A 0
05/05/2021 B 0
06/05/2021 A 5
06/05/2021 B 0
07/05/2021 A 4
07/05/2021 B 0
08/05/2021 A 5
08/05/2021 B 4
09/05/2021 A 0
09/05/2021 B 0
10/05/2021 A 6
10/05/2021 B 0
我尝试了以下合并,但我得到的输出似乎并不如预期:
df_new = df1.merge(df2, how='left', on='date')
date code qty
0 2021-05-03 A 2.0
1 2021-05-04 B 1.0
2 2021-05-05 NaN NaN
3 2021-05-06 A 5.0
4 2021-05-07 A 4.0
5 2021-05-08 A 5.0
6 2021-05-08 B 4.0
7 2021-05-09 NaN NaN
8 2021-05-10 A 6.0
【问题讨论】:
-
我假设您想要日期和代码的所有组合,对吗?
-
是的,我正在尝试获取日期和代码的所有组合
标签: python pandas dataframe merge