<p>代码的问题是,您试图将<code>Groupby object</code>调用为-<code>df.groupby(['arrival_date', 'bar_code'])(..)</code>,因此出现了问题</p>
<p>您也不需要使用<code>DataFrame.join</code>,只需对多列使用<code>groupby</code>,然后使用<code>.aggregate()</code>(或<code>.agg()</code>)。示例-</p>
<pre><code>df.groupby(['arrival_date', 'bar_code']).agg({'stock_shop1':sum,'stock_shop2':sum,'price':min})
</code></pre>
<p>如果不希望<code>'arrival_date'</code>和<code>'bar_code'</code>作为索引,可以调用<code>.reset_index()</code>来重置索引。示例-</p>
<pre><code>df.groupby(['arrival_date', 'bar_code']).agg({'stock_shop1':sum,'stock_shop2':sum,'price':min}).reset_index()
</code></pre>
<p>演示-</p>
<pre><code>In [14]: df
Out[14]:
arrival_date bar_code stock_shop1 stock_shop2 price
1 2015-08-30 8000001 52 11 100
2 2015-08-30 8000001 48 0 85
3 2015-09-11 8000001 10 20 95
4 2015-10-04 8000002 5 10 50
5 2015-10-04 8000002 30 25 49
In [15]: df.groupby(['arrival_date', 'bar_code']).agg({'stock_shop1':sum,'stock_shop2':sum,'price':min})
Out[15]:
stock_shop2 stock_shop1 price
arrival_date bar_code
2015-08-30 8000001 11 100 85
2015-09-11 8000001 20 10 95
2015-10-04 8000002 35 35 49
In [16]: df.groupby(['arrival_date', 'bar_code']).agg({'stock_shop1':sum,'stock_shop2':sum,'price':min}).reset_index()
Out[16]:
arrival_date bar_code stock_shop2 stock_shop1 price
0 2015-08-30 8000001 11 100 85
1 2015-09-11 8000001 20 10 95
2 2015-10-04 8000002 35 35 49
</code></pre>