擅长:python、mysql、java
<p>使用<a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html" rel="nofollow noreferrer">^{<cd1>}</a>:</p>
<pre><code># Do a cross-join on the `tmp` column
In [2279]: x = calendar.assign(tmp=1).merge(daily.assign(tmp=1))
# Filter rows by providing your conditions
In [2284]: x = x[x.date.between(x.date_start, x.date_end) & x.country.eq('us')]
# Left-join with `daily` df to get all rows
In [2289]: ans = daily.merge(x[['date', 'events']], on='date', how='left')
In [2290]: ans
Out[2290]:
date value events
0 2021-02-01 10 e1
1 2021-02-02 20 e1
2 2021-02-03 30 e1
3 2021-02-04 40 e1
4 2021-02-05 50 NaN
5 2021-02-06 60 e2
6 2021-02-07 70 e2
7 2021-02-08 80 NaN
</code></pre>