dataframe 将groupby后的结果变成dataframe格式
时间: 2023-11-18 21:53:09 浏览: 49
将groupby后的结果转换为DataFrame格式,可以使用`reset_index()`方法。
以下是一个示例代码:
```python
import pandas as pd
# 创建一个示例DataFrame
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'],
'B': ['one', 'one', 'two', 'two', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6],
'D': [7, 8, 9, 10, 11, 12]
})
# 对字段A和B进行groupby,并计算字段C和D的平均值
grouped_df = df.groupby(['A', 'B']).mean()
# 将groupby后的结果转换为DataFrame格式
result_df = grouped_df.reset_index()
print(result_df)
```
输出结果如下:
```
A B C D
0 bar one 8.0 10.0
1 bar two 4.0 11.0
2 foo one 1.0 7.0
3 foo two 4.0 9.0
```
在这个示例中,我们对字段A和B进行了groupby操作,并计算了字段C和D的平均值。然后使用`reset_index()`方法将groupby后的结果转换为DataFrame格式。
相关问题
统计dataframe.groupby后每个group个数
可以使用`size()`函数来统计`dataframe.groupby()`后每个group的个数。具体实现方法如下所示:
```python
import pandas as pd
import numpy as np
# 创建一个dataframe
df = pd.DataFrame(np.random.randn(6, 4), index=list(range(6)), columns=list('abcd'))
df['d']=[1,2,2,1,1,2]
# 按照'd'列进行分组
df_grouped = df.groupby('d')
# 统计每个group的个数
group_size = df_grouped.size()
# 输出结果
print(group_size)
```
输出结果为:
```
d
1 3
2 3
dtype: int64
```
其中,`group_size`是一个Series类型的对象,它的索引是每个group的标签,值是每个group的个数。
dataframe groupby 结果写成dataframe
您好!对于将 DataFrame 的 groupby 结果写回到 DataFrame 中,您可以使用 `transform` 方法。以下是一个示例:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'],
'B': ['one', 'one', 'two', 'two', 'three', 'three'],
'C': [1, 2, 3, 4, 5, 6],
'D': [7, 8, 9, 10, 11, 12]})
# 对 A 列进行分组,并计算每组的平均值
df['mean'] = df.groupby('A')['C'].transform('mean')
print(df)
```
输出结果如下:
```
A B C D mean
0 foo one 1 7 3.0
1 bar one 2 8 4.0
2 foo two 3 9 3.0
3 bar two 4 10 4.0
4 foo three 5 11 3.0
5 bar three 6 12 4.0
```
在上述示例中,我们对 DataFrame 的 A 列进行了分组,并使用 `transform` 方法计算了每个分组的 C 列的平均值,并将结果写回到新的列 mean 中。