[英]how to merge Two datasets with different time ranges?
我有两个如下所示的数据集:
df1
:
日期 | 城市 | 状态 | 数量 |
---|---|---|---|
2019-01 | 芝加哥 | 伊利诺伊州 | 35 |
2019-01 | 奥兰多 | 佛罗里达州 | 322 |
... | …… | ... | ... |
2021-07 | 芝加哥 | 伊利诺伊州 | 334 |
2021-07 | 奥兰多 | 佛罗里达州 | 4332 |
df2
:
日期 | 城市 | 状态 | 销售量 |
---|---|---|---|
2020-03 | 芝加哥 | 伊利诺伊州 | 30 |
2020-03 | 奥兰多 | 佛罗里达州 | 319 |
... | ... | ... | ... |
2021-07 | 芝加哥 | 伊利诺伊州 | 331 |
2021-07 | 奥兰多 | 佛罗里达州 | 4000 |
我的date
在两个数据集的格式period[M]
中。 我曾尝试使用df1.join(df2,how='outer')
和(df2.join(df1,how='outer')
命令,但它们没有正确加起来,基本上,在2019-01
中,我有sales for 2020-03
. 我怎样才能加入这两个数据集,这样我的输出如下:
我无法使用merge()
因为我必须与City
和State
以及Date
的组合合并
日期 | 城市 | 状态 | 数量 | 销售量 |
---|---|---|---|---|
2019-01 | 芝加哥 | 伊利诺伊州 | 35 | 钠 |
2019-01 | 奥兰多 | 佛罗里达州 | 322 | 钠 |
... | ... | ... | ... | ... |
2021-07 | 芝加哥 | 伊利诺伊州 | 334 | 331 |
2021-07 | 奥兰多 | 佛罗里达州 | 4332 | 4000 |
您可以outer-merge
。 通过不指定要合并的列,您可以合并两个 DataFrame 中列的交集(在本例中为Date
、 City
和State
)。
out = df1.merge(df2, how='outer').sort_values(by='Date')
输出:
Date City State Quantity Sales
0 2019-01 Chicago IL 35.0 NaN
1 2019-01 Orlando FL 322.0 NaN
4 2020-03 Chicago IL NaN 30.0
5 2020-03 Orlando FL NaN 319.0
2 2021-07 Chicago IL 334.0 331.0
3 2021-07 Orlando FL 4332.0 4000.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.