首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pandas中使用DataFrame中的date列?

在Pandas中使用DataFrame中的date列?
EN

Stack Overflow用户
提问于 2020-12-28 12:49:02
回答 2查看 65关注 0票数 0

我有如下的DataFrame:

代码语言:javascript
复制
rng = pd.date_range('2020-12-01', periods=5, freq='D')
df = pd.DataFrame({"ID" : [1, 2, 2, 1, 3],
                   "status" : ["acc", "rem", "rem", "acc", "other"], "date" : rng})

我需要用列创建DataFrame:

  1. New1 =从上一份"acc“协议到今天为止的天数28.12
  2. New2 =从上一份”对物“协议到今天为止的天数

结果如下:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-28 13:12:44

如下所示:

代码语言:javascript
复制
In [2608]: t = pd.to_datetime('today').normalize()

In [2615]: In [2627]: x = abs(df.groupby(['ID', 'status'])['date'].max() - t).dt.days.reset_index()
In [2619]: y = x.pivot('ID', 'status', 'date')

In [2620]: y
Out[2620]: 
status   acc  other   rem
ID                       
1       24.0    NaN   NaN
2        NaN    NaN  25.0
3        NaN   23.0   NaN

备注:您可以将accrem重命名为New1New2。为了得到更多的理解,我一直保留着它。

票数 1
EN

Stack Overflow用户

发布于 2020-12-28 13:26:37

代码:

代码语言:javascript
复制
df=df.groupby(['status'])['date'].agg('last').reset_index()
df['diff']=abs(pd.to_datetime('today').day-df['date'].dt.day)
df_final=df.pivot(columns='status',values='diff')

产出:

代码语言:javascript
复制
df_final
Out[104]: 
status   acc  other   rem
0       24.0    NaN   NaN
1        NaN   23.0   NaN
2        NaN    NaN  25.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65477883

复制
相关文章

相似问题

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