首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据透视表查找日期索引的差异

使用数据透视表查找日期索引的差异
EN

Stack Overflow用户
提问于 2019-10-14 12:08:30
回答 1查看 116关注 0票数 1

我有一个包含5列的数据帧,如下所示:

代码语言:javascript
复制
    ID  date    account_no  service_name    amount
0   0   2019-09-01  123456789012    AWS CloudTrail  0.00

数据开放时间为9月1日至10月14日,因安全原因不能分享:)

我想比较两个日期(9月21日和10月10日),找出差异。

下面的代码运行正常。但我想知道是否有更好的方法。

代码语言:javascript
复制
x = df[df.date == "2019-09-21"]
x = x[x.columns[3:]]
x.columns = ["service_name", "2019-09-21"]

y = df[df.date == "2019-10-10"]
y = y[y.columns[3:]]
y.columns = ["service_name", "2019-10-10"]

ndf = x.merge(y, on="service_name")

ndf["diff"] = ndf["2019-09-21"] - ndf["2019-10-10"]

    service_name    2019-09-21  2019-10-10  diff
6   EC2 - Other 2.75    2.39    0.36
7   Amazon Elastic Compute Cloud - Compute  0.16    2.54    -2.38

我试图找到类似pivot_table的解决方案,在那里我可以得到每周差异,每月差异等的报告。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-14 13:10:01

首先使用DataFrame.pivotDataFrame.pivot_table

代码语言:javascript
复制
ndf = df.pivot(index='service_name',columns='date',values='amount')
#if aggregation is necessary
#ndf = df.pivot_table(index='service_name',columns='date',values='amount', aggfunc='mean')
ndf["diff"] = ndf["2019-09-21"] - ndf["2019-10-10"]
print (ndf)
date                                    2019-09-01  2019-09-21  2019-10-10  \
service_name                                                                 
AWS CloudTrail                                 0.0         NaN         NaN   
Amazon Elastic Compute Cloud - Compute         NaN        0.16        2.54   
EC2 - Other                                    NaN        2.75        2.39   

date                                    diff  
service_name                                  
AWS CloudTrail                           NaN  
Amazon Elastic Compute Cloud - Compute -2.38  
EC2 - Other                             0.36  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58369992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档