pandas如何分组
时间: 2023-11-15 21:56:22 浏览: 75
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
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`函数求每个人的总分。最后打印出每个人的总分。
pandas分组分析
以下是使用pandas进行分组分析的示例:
```python
import pandas as pd
# 创建一个示例数据集
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
'Subject': ['Math', 'Math', 'Math', 'Science', 'Science', 'Science'],
'Score': [90, 85, 92, 78, 80, 88]}
df = pd.DataFrame(data)
# 按照姓名进行分组,并计算每个人的平均分
grouped = df.groupby('Name')
average_score = grouped['Score'].mean()
print(average_score)
# 按照科目进行分组,并计算每个科目的最高分
grouped = df.groupby('Subject')
max_score = grouped['Score'].max()
print(max_score)
```
这个示例中,我们首先创建了一个包含姓名、科目和分数的数据集。然后,我们使用`groupby`函数按照姓名和科目进行分组。接着,我们可以对每个分组应用不同的聚合函数,例如计算平均分或最高分。在示例中,我们分别计算了每个人的平均分和每个科目的最高分。
阅读全文