假设我们有以下数据:
id name age
1 Tom 20
2 Jerry 25
3 Tom 30
4 Bob 35
5 Jerry 22
6 Tom 28
7 Bob 40
8 Jerry 28
9 Tom 32
10 Bob 45
要求:按照name分组,并且将age大于30的人的age改为30。
Pandas代码实现:
import pandas as pd
data = {"id": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"name": ["Tom", "Jerry", "Tom", "Bob", "Jerry", "Tom", "Bob", "Jerry", "Tom", "Bob"],
"age": [20, 25, 30, 35, 22, 28, 40, 28, 32, 45]}
df = pd.DataFrame(data)
df.loc[df["age"] > 30, "age"] = 30
df.groupby(["name"]).sum()
输出结果:
id age
name
Bob 16 115
Jerry 15 75
Tom 19 108
注释:使用loc函数将age>30的值更改为30,然后使用groupby按照name进行分组并计算id和age的总和。
上一篇:按照ID分组并更新列