我正在使用熊猫数据框。我已经使用自定义聚合编写了代码。
#include <iostream>
using namespace std;
int main() {
int cv;
cout<<"Cuantas personas van a participar? "<< endl;
cin>> cv ;
char nombres[cv]{};
for(int x = 1; x<=cv; x++){
cin>>nombres[x];
cout<<nombres[x]<< endl;
}
return 0;
}
输出就像
import pandas as pd
from functools import reduce
data = {'item': ['d1','d1','d1','d1','d1','d1','d1','d1','d1','d1'], 'price': [65,52,93,74,46,67,62,50,49,41]}
df = pd.DataFrame(data)
def pass_percent(series):
obtained_total=0
grand_marks=0
for mark in series:
if mark>=35:
obtained_total = obtained_total + mark
grand_marks = grand_marks + 1
return (obtained_total/(grand_marks*100))*100
df1 = df.groupby('dept').agg({'marks': ['sum', pass_percent]})
print(df1)
拥有这样的数据框是什么意思。该怎么做?
marks
sum pass_percent
dept
d1 599 59.9
答案 0 :(得分:2)
您可以在 agg()
方法中使用命名元组:
df1=df.groupby('item').agg(total=('price','sum'),final_pass_percent=('price',pass_percent))
聚合后分两步更改列名:
df1=df.groupby('item').agg({'price': ['sum', pass_percent]})
df1.columns=['total','final_pass_percent']
df1
的输出:
total final_pass_percent
item
d1 599 59.9