首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python日期时间分析器、组和查找第一个值

问Python日期时间分析器、组和查找第一个值
EN

Stack Overflow用户
提问于 2018-10-25 15:28:39
回答 1查看 176关注 0票数 1

我面临以下挑战:

在从导入中选择我需要的列之后,我有一个如下所示的dataframe:

代码语言:javascript
复制
user_id    datetime
1          1473225887
1          1373225887
1          1673225887
2          1173225887
2          1573225887

我想做的是两件事:(1)使用datetime函数将datetime值转换为正常的日期表示法,而不是unix_timestamp。我还没有做到这一点。

(2)对user_id上的数据进行分组,只保留每个user_id的第一个日期时间(所以是最早的日期)。

到目前为止,我编写的代码如下。请注意,我是Python的初学者,我还没有管理类,所以我想一开始就不上类。

我希望你能在这里帮我!提前谢谢!

代码语言:javascript
复制
def run():
    engagement_dataset = import_engagements()
    engagement_dataset_first_event = first_engagement(engagement_dataset)

def import_engagements():
    df_engagements = pd.read_csv('df_engagements.csv',
                                 sep=';')
    required_columns = ['engagement_unix_timestamp', 'user_id']
    df_engagements = df_engagements[required_columns]
    df_engagements.rename(columns={'engagement_unix_timestamp': 'datetime'}, inplace=True)
    return df_engagements

def first_engagement(engagement_dataset):
    engagement_dataset_grouped = engagement_dataset.groupby(['user_id'])['datetime'].idxmin().reset_index()
        return engagement_dataset_grouped

run()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 15:42:54

(1)可以将unix格式的日期时间转换为:

代码语言:javascript
复制
df['datetime_formatted'] = pd.to_datetime(df['datetime'], unit='s')

(2)然后您可以通过agg按用户进行分组和聚合,为该用户找到最小日期:

代码语言:javascript
复制
df.groupby('user_id').agg({'datetime_formatted':'min'})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52993021

复制
相关文章

相似问题

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