我有一个看起来像这样的数据框:
Name rent sale
0 A 180 2
1 B 1 4
2 M 12 1
3 O 10 1
4 A 180 5
5 M 2 19
Run Code Online (Sandbox Code Playgroud)
我想提出条件,如果我在列字段中有重复的行和重复的值=> 示例:
预期输出:
Name rent sale
0 A 180 7
1 B 1 4
2 M 14 20
3 O 10 1
Run Code Online (Sandbox Code Playgroud)
我试过这段代码,但它不像我想要的那样工作
import pandas as pd
df=pd.DataFrame({'Name':['A','B','M','O','A','M'],
'rent':[180,1,12,10,180,2],
'sale':[2,4,1,1,5,19]})
df2 = df.drop_duplicates().groupby('Name',sort=False,as_index=False).agg(Name=('Name','first'),
rent=('rent', 'sum'),
sale=('sale','sum'))
print(df2)
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出
Name rent sale
0 A 360 7
1 B 1 4
2 M 14 20
3 O 10 1
Run Code Online (Sandbox Code Playgroud)
可以尝试仅对unique每组的值求和:
def sum_unique(s):
return s.unique().sum()
df2 = df.groupby('Name', sort=False, as_index=False).agg(
Name=('Name', 'first'),
rent=('rent', sum_unique),
sale=('sale', sum_unique)
)
Run Code Online (Sandbox Code Playgroud)
df2:
Name rent sale
0 A 180 7
1 B 1 4
2 M 14 20
3 O 10 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |