<p>我认为您唯一的选择是在日期范围内调用<code>groupby</code>和<code>reindex</code>:</p>
<pre><code>def reindex(g):
return g.reindex(pd.date_range(g.index.min(), g.index.max()))
df['date'] = pd.to_datetime(df['date'], errors='coerce')
(df.set_index('date')
.groupby(['name', 'account'])
.points.apply(reindex)
.ffill()
.rename_axis(['name', 'account', 'date'])
.reset_index())
name account date points
0 Fred g21 2014-02-02 17
1 Fred g21 2014-02-03 17
2 Fred g21 2014-02-04 17
3 Fred g21 2014-02-05 17
4 Fred g21 2014-02-06 17
5 Fred g21 2014-02-07 17
6 Fred g21 2014-02-08 19
7 Fred g52 2014-02-07 21
8 Fred g52 2014-02-08 21
9 Fred g52 2014-02-09 18
10 Steve e12 2014-02-07 17
11 Steve e12 2014-02-08 17
12 Steve e12 2014-02-09 18
13 Steve g52 2014-02-03 52
14 Steve g52 2014-02-04 52
15 Steve g52 2014-02-05 52
16 Steve g52 2014-02-06 25
17 Steve g52 2014-02-07 25
18 Steve g52 2014-02-08 31
19 Steve g52 2014-02-09 40
</code></pre>