我有以下資料框
df = pd.DataFrame({'Date': ['2020-01-01', '2020-10-01', '2021-01-01', '2021-10-01'],
'ID': [101, 101, 102, 102],
'number': [10, 10, 11, 11]})
# currently looking like this
Date ID number
0 2020-01-01 101 10
1 2020-10-01 101 10
2 2021-01-01 102 11
3 2021-10-01 102 11
有沒有辦法以具有以下形式的方式重組資料框?
Start Date End Date ID number
0 2020-01-01 2020-10-01 101 10
1 2021-01-01 2021-10-01 102 11
uj5u.com熱心網友回復:
我們可以使用Named Aggregation和Groupby 聚合來獲取每個組的日期min和max日期,并使用新名稱進行設定。reindex可以選擇重新排序列以匹配顯示的預期輸出:
new_df = df.groupby(
['ID', 'number'], as_index=False
).aggregate(
**{'Start Date': ('Date', 'min'), 'End Date': ('Date', 'max')}
).reindex(columns=['Start Date', 'End Date', 'ID', 'number'])
new_df:
Start Date End Date ID number
0 2020-01-01 2020-10-01 101 10
1 2021-01-01 2021-10-01 102 11
***需要字典解包以允許重命名的列有空格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350763.html
