এটি করা উচিত, groupby()দুবার প্রয়োজন :
df.groupby(['name', 'day']).sum() \
.groupby(level=0).cumsum().reset_index()
ব্যাখ্যা:
print(df)
name day no
0 Jack Monday 10
1 Jack Tuesday 20
2 Jack Tuesday 10
3 Jack Wednesday 50
4 Jill Monday 40
5 Jill Wednesday 110
print( df.groupby(['name', 'day']).sum() )
no
name day
Jack Monday 10
Tuesday 30
Wednesday 50
Jill Monday 40
Wednesday 110
print( df.groupby(['name', 'day']).sum() \
.groupby(level=0).cumsum() )
no
name day
Jack Monday 10
Tuesday 40
Wednesday 90
Jill Monday 40
Wednesday 150
প্রথম যোগফলের ফলাফল হিসাবে ডেটাফ্রেম দ্বারা 'name'এবং এর সূচী হয় 'day'। আপনি এটি মুদ্রণ করে দেখতে পারেন
df.groupby(['name', 'day']).sum().index
ক্রমসংখ্যার যোগফল গণনা করার সময় আপনি 'name'প্রথম সূচক (স্তর 0) এর সাথে মিল রেখে এটি করতে চান ।
সবশেষে, reset_indexনামগুলি পুনরাবৃত্তি করতে ব্যবহার করুন ।
df.groupby(['name', 'day']).sum().groupby(level=0).cumsum().reset_index()
name day no
0 Jack Monday 10
1 Jack Tuesday 40
2 Jack Wednesday 90
3 Jill Monday 40
4 Jill Wednesday 150