我面临以下挑战:
在从导入中选择我需要的列之后,我有一个如下所示的dataframe:
user_id datetime
1 1473225887
1 1373225887
1 1673225887
2 1173225887
2 1573225887我想做的是两件事:(1)使用datetime函数将datetime值转换为正常的日期表示法,而不是unix_timestamp。我还没有做到这一点。
(2)对user_id上的数据进行分组,只保留每个user_id的第一个日期时间(所以是最早的日期)。
到目前为止,我编写的代码如下。请注意,我是Python的初学者,我还没有管理类,所以我想一开始就不上类。
我希望你能在这里帮我!提前谢谢!
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()发布于 2018-10-25 15:42:54
(1)可以将unix格式的日期时间转换为:
df['datetime_formatted'] = pd.to_datetime(df['datetime'], unit='s')(2)然后您可以通过agg按用户进行分组和聚合,为该用户找到最小日期:
df.groupby('user_id').agg({'datetime_formatted':'min'})https://stackoverflow.com/questions/52993021
复制相似问题