在 python pandas 中成為以下 DataFrame:
| date | counter |
|-----------------------------|------------------|
| 2022-01-01 10:00:02 00:00 | 34 |
| 2022-01-03 11:03:02 00:00 | 23 |
| 2022-02-01 12:00:05 00:00 | 12 |
| 2022-03-01 21:04:02 00:00 | 7 |
| date | holiday |
|-----------------------------|------------------|
| 2022-01-01 | True |
| 2022-01-02 | False |
| 2022-01-03 | True |
| 2022-02-01 | True |
| 2022-02-02 | True |
| 2022-02-03 | True |
| 2022-03-01 | False |
| 2022-03-02 | True |
| 2022-03-03 | False |
考慮到我不想創建帶有日期的輔助列,如何合并兩個 DataFrame?
| date | counter | holiday |
|-----------------------------|------------------|--------------|
| 2022-01-01 10:00:02 00:00 | 34 | True |
| 2022-01-03 11:03:02 00:00 | 23 | True |
| 2022-02-01 12:00:05 00:00 | 12 | True |
| 2022-03-01 21:04:02 00:00 | 7 | False |
提前謝謝你的幫助。
uj5u.com熱心網友回復:
Series.map與沒有時間的日期時間一起使用-然后在輸出Series.dt.normalize中不會創建輔助列:df2
df2['holiday'] = df2['date'].dt.normalize().map(df1.set_index('date')['holiday'])
另一個想法merge_asof,但為了避免錯誤需要洗掉時區Series.dt.tz_convert:
df = pd.merge_asof(df1.assign(date = df1['date'].dt.tz_convert(None)).sort_values('date'),
df2, on='date')
print (df)
date counter holiday
0 2022-01-01 10:00:02 34 True
1 2022-01-03 11:03:02 23 True
2 2022-02-01 12:00:05 12 True
3 2022-03-01 21:04:02 7 False
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474532.html
上一篇:計算兩個日期欄位之間的天數差
下一篇:乘以而不消除資訊
