gpt4 book ai didi

python-3.x - Pandas :如何仅在数据透视表数据框中添加最新日期

转载 作者:行者123 更新时间:2023-12-04 02:21:29 31 4
gpt4 key购买 nike

我如何根据图片中的数据透视表创建一个新的数据框,它只包含每个“天”的“txn_date”列的最新日期作为索引?谢谢

Pivot Table of time series

最佳答案

d1 = pd.to_datetime(['2016-06-25'] *2 + ['2016-06-28']*4)
df = pd.DataFrame({'txn_date':pd.date_range('2012-03-05 10:20:03', periods=6),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'day':d1}).set_index(['day','txn_date'])

print (df)
B C D E
day txn_date
2016-06-25 2012-03-05 10:20:03 4 7 1 5
2012-03-06 10:20:03 5 8 3 3
2016-06-28 2012-03-07 10:20:03 4 9 5 6
2012-03-08 10:20:03 5 4 7 9
2012-03-09 10:20:03 5 2 1 2
2012-03-10 10:20:03 4 3 0 4

1.

我想你首先需要sort_index如果有必要,然后 groupby按级别 day 聚合 last :

df1 = df.sort_index().reset_index(level=1).groupby(level='day').last()
print (df1)
txn_date B C D E
day
2016-06-25 2012-03-06 10:20:03 5 8 3 3
2016-06-28 2012-03-10 10:20:03 4 3 0 4

2.

boolean indexing 过滤与 duplicated :

#if necessary
df = df.sort_index()
df2 = df[~df.index.get_level_values('day').duplicated(keep='last')]
print(df2)
B C D E
day txn_date
2016-06-25 2012-03-06 10:20:03 5 8 3 3
2016-06-28 2012-03-10 10:20:03 4 3 0 4

关于python-3.x - Pandas :如何仅在数据透视表数据框中添加最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596192/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com