首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按ID分组,返回MIN日期,并在MIN日期时包含MIN代码

按ID分组,返回MIN日期,并在MIN日期时包含MIN代码
EN

Stack Overflow用户
提问于 2018-04-13 01:59:32
回答 2查看 49关注 0票数 1

Dataframe包含:

代码语言:javascript
运行
复制
    >> df
    ID       DATE     ZIPCODE
    196512  1/1/2017  17961  
    196512  3/1/2016  96512 
    196512  2/1/2017  34521
    196512  9/23/2017 85687
    196795  3/2/2017  28978
    196795  7/3/2016  98362
    196795  9/2/2016  21345
    196795  1/1/2015  03452

我现在的蟒蛇大熊猫代码是:

df1 = pd.pivot_table(df,index=["ID","ZIPCODE"],values=["DATE"],aggfunc=min)

这段代码得到了我想要的结果,但是在我的示例中可以看到,通过在ID和MIN代码上创建一个枢轴表,之后我必须手动评估我的输出,以便用MIN日期的MIN代码计算每个ID的最早日期。

我想要的结果是:

代码语言:javascript
运行
复制
    ID      Date      ZIPCODE
    196512  3/1/2016   96512
    196795  1/1/2015   03452

因为我正在寻找每个ID的最早日期和相关的邮政编码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-13 02:04:26

这是一条路。

代码语言:javascript
运行
复制
df['DATE'] = pd.to_datetime(df['DATE'], dayfirst=True)

res = df.loc[df.groupby('ID')['DATE'].idxmin()]

print(res)

#        ID       DATE  ZIPCODE
# 1  196512 2016-01-03    96512
# 7  196795 2015-01-01     3452
票数 3
EN

Stack Overflow用户

发布于 2018-04-13 02:03:52

您需要先转换为datetime格式,然后在sort_values之后使用sort_values

代码语言:javascript
运行
复制
df.assign(DATE=pd.to_datetime(df.DATE)).sort_values('DATE').drop_duplicates('ID')
Out[207]: 
       ID       DATE  ZIPCODE
7  196795 2015-01-01     3452
1  196512 2016-03-01    96512
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49808213

复制
相关文章

相似问题

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