擅长:python、mysql、java
<p>使用<code>apply()</code>选择符合您的条件的<code>df2</code>数据,然后使用<code>len()</code>获取大小。确保使用<code>pd.to_datetime()</code>将日期转换为datetime。见下表:</p>
<p>df1和df2准备:</p>
<pre><code>df1 = pd.DataFrame([['a','01/01/2016 13:30'],
['a','01/02/2016 18:35'],
['b','07/07/2016 12:15'],
['b','07/08/2016 19:15']], columns=['id','date1'] )
df1['date1'] = pd.to_datetime(df1['date1'])
df2 = pd.DataFrame([['a','01/12/2015 15:15'],
['b','07/12/2015 18:15'],
['b','11/12/2015 14:05'],
['b','01/01/2017 16:30']], columns=['id','date2'] )
df2['date2'] = pd.to_datetime(df2['date2'])
</code></pre>
<p>代码:</p>
<pre><code>df1['count'] = df1.apply(lambda x: len(df2[(df2.date2 <= x.date1)&(df2.id==x.id)]),
axis='columns')
</code></pre>
<p>结果:</p>
<pre><code>i. id date1 count
0 a 2016-01-01 13:30:00 1
1 a 2016-01-02 18:35:00 1
2 b 2016-07-07 12:15:00 2
3 b 2016-07-08 19:15:00 2
</code></pre>