группировка по индексу датафрейм python и разница во времени - PullRequest
0 голосов
/ 08 октября 2018

Можно ли сгруппировать индекс из 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()                              

У кого-нибудь есть идеи, как решить эту проблему?Спасибо!

...