pandas groupby sum 后补第一行空格
时间: 2023-10-13 21:06:40 浏览: 96
pandas获取groupby分组里最大值所在的行方法
5星 · 资源好评率100%
可以使用 `pd.DataFrame.shift()` 来将第一行的值移动一行,然后再将第一行的值赋为 0。
例如,假设我们有以下数据:
``` python
import pandas as pd
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]
})
df_grouped = df.groupby(['A', 'B']).sum()
```
这样我们就得到了 `df_grouped`:
```
C D
A B
bar one 2 30
three 4 40
two 11 120
foo one 8 80
three 8 88
two 8 80
```
现在我们可以将第一行的值移动一行:
``` python
df_grouped = df_grouped.shift()
```
这样我们得到了:
```
C D
A B
bar one NaN NaN
three 2.0 30.0
two 4.0 40.0
foo one NaN NaN
three 8.0 80.0
two 8.0 80.0
```
现在我们再将第一行的值赋为 0:
``` python
df_grouped.iloc[0] = 0
```
这样我们得到了:
```
C D
A B
bar one 0.0 0.0
three 2.0 30.0
two 4.0 40.0
foo one 0.0 0.0
three 8.0 80.0
two 8.0 80.0
```
阅读全文