เข้าใจแรกและสุดท้ายนการเกิดขึ้นอีกของที่ซ้ำกันออกค่า

0

คำถาม

ฉันมี dataframe เหมือนนี้

index    col1     col2    col3    col4
  0      11/20    11/26   abc     35
  1      11/21    11/24   xxx     30
  2      11/22    11/27   abc     20

อยู่ที่นี่ col3 มีคนเดียวกันค่า(duplicated จากค่า). ฉัน sum() col4 จากแถวจากกา col3 ค่า.

ดังนั้นในกรณีนี้ฉันทำ

df = df.groupby(['col3'])[['col4']].sum()

แต่กับเรื่องนี้เข้าไปฉันเข้าใจ

index    col3    col4
  0      abc     55
  1      xxx     30

ฉันอยากจะเป็นสามารถรักษาก่อนการเกิดขึ้นอีกของ duplicated ค่าเป็น col1(11/20)และสุดท้ายของการเกิดขึ้นอีก col2(11/27)ดังนั้นเป็นสิ่งสุดท้ายที่จะดูเหมือนว่า

index    col1     col2    col3    col4
  0      11/20    11/27   abc     55
  1      11/21    11/24   xxx     30

pandas python
2021-11-24 05:23:58
2

คำตอบที่ดีที่สุด

2

ทางเดียวใช้ pandas.DataFrame.groupby.agg:

new_df = df.groupby("col3", as_index=False).agg({"col1": "first",
                                                 "col2": "last",
                                                 "col4": "sum"})
print(new_df)

แสดงผล:

  col3   col1   col2  col4
0  abc  11/20  11/27    55
1  xxx  11/21  11/24    30
2021-11-24 05:27:44

การเปลี่ยนแปล col1/col2 จะ datetime และใช้มิน/แม็กซ์อาจจะเป็นมากก robust ถ้าพวกเราเสมออยาก"ก่อน"(earliest)วันที่และค"สุด"(ล่าสุด)ออกเดท (อีกครั้งมันขึ้นอยู่กับใช้-คดี)
Henry Ecker
0

Pandas ให้ first แล้ว last aggregations.

2021-11-24 05:28:04

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่