sort
, вычислите разницу, а затем groupby
+ nth(1)
, чтобы получить разницу между первыми загрузками, если она существует (пользователи с 1 датой не будут отображаться).
import pandas as pd
df['Date_Uploaded'] = pd.to_datetime(df.Date_Uploaded)
df = df.sort_values(['User_ID', 'Date_Uploaded'])
df.Date_Uploaded.diff().groupby(df.User_ID).nth(1)
#User_ID
#abc123 36 days
#efg123 7 days
#Name: Date_Uploaded, dtype: timedelta64[ns]
Если вы просто хотите получить среднее значение, то усредните этот ряд:
df.Date_Uploaded.diff().groupby(df.User_ID).nth(1).mean()
#Timedelta('21 days 12:00:00')