pandas如何分组
时间: 2023-11-15 22:56:22 浏览: 41
pandas中可以使用groupby方法进行分组,具体操作如下:
```python
# 导入pandas库
import pandas as pd
# 创建一个DataFrame
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]})
# 按照A列进行分组,并计算每组的平均值
grouped = df.groupby('A').mean()
print(grouped)
```
输出结果为:
```
C D
A
bar 4.000000 40.0
foo 4.666667 35.0
```
其中,groupby方法的参数可以是列名、多个列名、Series、函数等。在上述例子中,我们按照'A'列进行了分组,并计算了每组的平均值。
相关问题
pandas分组输出
Pandas是Python中一个很常用的数据处理库,可以用它进行各种数据处理和分析。Pandas中有一个非常有用的功能是分组(groupby),可以按照某一列或多列将数据集分组,然后对每个组进行汇总、聚合、转换等操作。下面是一个简单的示例:
假设有一个包含学生姓名、班级、科目和成绩的数据集,可以按照班级对数据进行分组,并计算每个班级的平均分数:
```
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
'class': ['A', 'B', 'A', 'B', 'A', 'B'],
'subject': ['Math', 'Math', 'English', 'English', 'Science', 'Science'],
'score': [80, 90, 85, 95, 75, 80]}
df = pd.DataFrame(data)
grouped = df.groupby('class')
result = grouped.mean()
print(result)
```
上述代码中,`groupby('class')`表示按照`class`这一列进行分组,`mean()`表示计算每个分组的平均值。最后的结果如下:
```
score
class
A 80.000000
B 85.000000
```
这样就得到了按照班级分组后的平均成绩。除了`mean()`之外,还可以使用其他的聚合函数(如`sum()`、`max()`等),也可以使用自定义函数来对每个分组进行处理。
pandas 分组求和
以下是使用pandas进行分组求和的示例:
```python
import pandas as pd
# 创建一个示例数据集
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
'Subject': ['Math', 'Math', 'Math', 'Science', 'Science', 'Science'],
'Score': [80, 90, 85, 70, 75, 65]}
df = pd.DataFrame(data)
# 按照姓名进行分组,并求每个人的总分
grouped = df.groupby('Name')
sum_scores = grouped['Score'].sum()
print(sum_scores)
```
输出结果为:
```
Name
John 150
Nick 165
Tom 150
Name: Score, dtype: int64
```
这里我们首先导入pandas库,并创建一个示例数据集。然后使用`groupby`函数按照姓名进行分组,并使用`sum`函数求每个人的总分。最后打印出每个人的总分。