<p>你需要<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.transform.html" rel="noreferrer">^{<cd1>}</a><a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.size.html" rel="noreferrer">^{<cd2>}</a>-<code>len</code>的<code>df</code>和以前一样:</p>
<p>注意:</p>
<p><em>这里需要在<code>groupby</code>之后添加一列,否则会出现错误。因为<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.size.html" rel="noreferrer">^{<cd6>}</a>count<code>NaN</code>s也是,所以使用什么列并不重要。所有列工作相同。</em></p>
<pre><code>import pandas as pd
df = pd.DataFrame({'A': ['x', 'x', 'x','y','y']
, 'B': ['a', 'c', 'c','b','b']})
print (df)
A B
0 x a
1 x c
2 x c
3 y b
4 y b
df['size'] = df.groupby(['A', 'B'])['A'].transform('size')
print (df)
A B size
0 x a 1
1 x c 2
2 x c 2
3 y b 2
4 y b 2
</code></pre>
<p>如果需要在聚合<code>df</code>-<code>len</code>的<code>df</code>中设置列名,则显然与之前不同:</p>
<pre><code>import pandas as pd
df = pd.DataFrame({'A': ['x', 'x', 'x','y','y']
, 'B': ['a', 'c', 'c','b','b']})
print (df)
A B
0 x a
1 x c
2 x c
3 y b
4 y b
df = df.groupby(['A', 'B']).size().reset_index(name='Size')
print (df)
A B Size
0 x a 1
1 x c 2
2 y b 2
</code></pre>