[英]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.