gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:52:53 25 4
gpt4 key购买 nike

我面临以下挑战:

从导入中选择我需要的列后,我有一个如下所示的数据框:

user_id    datetime
1 1473225887
1 1373225887
1 1673225887
2 1173225887
2 1573225887

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

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

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

希望你能帮帮我!预先非常感谢!

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()

最佳答案

(1) 您可以使用以下命令转换 unix 格式的日期时间:

df['datetime_formatted'] = pd.to_datetime(df['datetime'], unit='s')

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

df.groupby('user_id').agg({'datetime_formatted':'min'})

关于Python Pandas 日期时间解析器、分组和查找第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52993021/

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