假设我有一个包含 -
<pre>
<table>
<tr>
<th scope='column'>Fruit</ th>
<th scope='column'>Address</ th>
<th scope='column'>Quantity</ th>
</ tr>
<br>
<tr>
<td>Banana</ td>
<td>Baker Street</ td>
<td>10</ td>
</ tr>
<br>
<tr>
<td>Banana</ td>
<td>Baker Street</ td>
<td>20</ td>
</ tr>
<br>
<tr>
<td>Banana</ td>
<td>Nautilus</ td>
<td>10</ td>
</ tr>
</ table>
</ pre>
我想要一个包含 -
<pre>
<table>
<tr>
<th scope='column'>Fruit</ th>
<th scope='column'>Address</ th>
<th scope='column'>Quantity</ th>
</ tr>
<br>
<tr>
<td>Banana</ td>
<td>Baker Street</ td>
<td>30</ td>
</ tr>
<br>
<tr>
<td>Banana</ td>
<td>Nautilus</ td>
<td>10</ td>
</ tr>
</ table>
</ pre>
有没有简洁的方法可以做到这一点?从本质上讲,我想在最后一个唯一列上对一个包含所有公共列的表求和。
我认为您正在寻找按总和分组,即
如果你有一个类似
columns = ['Fruit','Address','Quality']
df = pd.DataFrame([['Banana','Baker Street',10],['Banana','Baker Street',20],['Banana','Nautilus',10]],columns = columns)
水果地址质量 0香蕉贝克街10号 香蕉贝克街 20 号 1 号 2 香蕉鹦鹉螺 10
分组按总和与reset_index将给出
new_df = df.groupby(['Fruit','Address'])['Quality'].sum().reset_index()
水果地址质量 0香蕉贝克街30号 1 香蕉鹦鹉螺 10
你也可以使用as_index = False
new_df = df.groupby(['Fruit','Address'],as_index=False)['Quality'].sum()
希望对你有帮助