擅长:python、mysql、java
<p>您可以先分解日历,然后在天合并:</p>
<pre class="lang-py prettyprint-override"><code>calendar['date'] = [pd.date_range(s, e, freq='d') for s, e in
zip(calendar['date_start'], calendar['date_end'])]
calendar = calendar.explode('date').drop(['date_start', 'date_end'], axis=1)
events = calendar.merge(daily, how='inner', on='date')
us_events = events[events.country == 'us'].drop('country', axis=1)[['date', 'value', 'events']]
</code></pre>
<p>我认为这比提供的其他答案要快(没有)</p>