pandas多加一列分组
时间: 2023-11-03 22:03:20 浏览: 51
要在Pandas中添加一列分组,可以使用`groupby()`函数将数据按照指定的列进行分组,并使用聚合函数对其他列进行操作后,再将结果添加为新列。以下是实现这个过程的代码示例:
```python
import pandas as pd
# 示例数据
dic = {'省份': ['A', 'A', 'A', 'B', 'C'], '城市': ['a', 'a', 'a_', 'b', 'c'],
'订单额': [1, 2, 3, 4, 5], '规模': [5, 4, 3, 2, 1]}
df = pd.DataFrame(dic)
# 按照'城市'列进行分组,并将'订单额'列求和作为新列
df['分组列名'] = df.groupby('城市')['订单额'].transform('sum')
# 打印结果
print(df)
```
相关问题
pandas按一列分组
Pandas按一列分组可以使用`groupby()`函数。该函数可以将数据按指定列进行分组并进行聚合操作。
例如,假设有一个数据集`df`,其中包含`name`和`score`两列数据:
```
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
'score': [90, 80, 70, 85, 75]}
df = pd.DataFrame(data)
```
现在想要按`name`列进行分组,并计算每个人的平均分数,可以使用如下代码:
```
grouped = df.groupby('name')
mean_scores = grouped['score'].mean()
```
这里首先使用`groupby()`函数按`name`列进行分组,然后使用`mean()`函数计算每个组的平均分数。最后,得到了每个人的平均分数`mean_scores`:
```
name
Alice 87.5
Bob 77.5
Charlie 70.0
Name: score, dtype: float64
```
pandas按照某一列分组
要按照某一列分组,可以使用pandas的groupby()函数。例如,假设我们有以下数据:
```
import pandas as pd
data = {'Name': ['Tom', 'Tom', 'Jerry', 'Jerry', 'Mary', 'Mary'],
'Age': [20, 25, 30, 35, 40, 45],
'Gender': ['M', 'M', 'M', 'M', 'F', 'F']}
df = pd.DataFrame(data)
print(df)
```
输出:
```
Name Age Gender
0 Tom 20 M
1 Tom 25 M
2 Jerry 30 M
3 Jerry 35 M
4 Mary 40 F
5 Mary 45 F
```
我们可以按照Name列分组,然后对每组进行操作,例如计算每组的平均年龄。代码如下:
```
grouped = df.groupby('Name')
print(grouped['Age'].mean())
```
输出:
```
Name
Jerry 32.5
Mary 42.5
Tom 22.5
Name: Age, dtype: float64
```
在上面的代码中,我们首先使用groupby()函数按照Name列分组,然后使用mean()函数计算每组的平均年龄。注意,我们只对Age列进行了操作,因为我们只关心每组的平均年龄。