Можно ли сгруппировать индекс из Python Dataframe?
X и время - это индекс, и мне нравится получать две вещи:
df:
X Y Time
1 A 2018-08-20 04:00:00.242180
A 2018-08-20 04:00:01.242180
A 2018-08-20 04:00:10.242180
2 B 2018-08-20 04:01:00.242180
B 2018-08-20 04:00:00.242180
B 2018-08-20 04:00:00.242180
B 2018-08-20 04:03:00.242180
3 C 2018-08-20 04:03:00.242180
C 2018-08-20 04:04:00.242180
C 2018-08-20 04:05:01.242180
4 A 2018-08-20 04:00:00.242180
A 2018-08-20 04:00:05.242180
A 2018-08-20 04:01:10.242180
1 Подсчитать различное количество X иgroupby Y
OUT: Y X_count
A 2
B 1
C 1
Я пробовал это, но это не работает:
df['X_count'] = df.groupby('Y')['X'].nunique(dropna=False)
2 Получите продолжительность времени между первым и последним временем каждого X. суммируйте его и сгруппируйте Y.
time format='%d%b%Y:%H:%M:%S.%f'
OUT: Y Time_Duration
A 80 #10+70
B 120
C 121
К сожалению, я не имею ни малейшего понятия, как это реализовать, но мой подход будет таким:
for every X in df
df['Time_Diff'] = (df.index(iloc[-1]['time'] - df.iloc[0['time']).total_seconds()
time_sum = df.groupby('Y')['Time_Diff'].sum()
У кого-нибудь есть идеи, как решить эту проблему?Спасибо!