我有一个看起来像这样的DataFrame:
Date installed Date removed
ID Type
A AA 2008-07-15 2008-12-29
AA 2008-12-29 2009-10-15
AAB 2009-10-15 2010-08-27
AAB 2014-11-13 2015-04-28
而且我想折叠具有相同'Type'
索引的行,并在'Date installed'
列中具有最小日期,在'Date removed'
列中具有最大日期。我怎样才能做到这一点?
所需的输出:
Date installed Date removed
ID Type
A AA 2008-07-15 2009-10-15
AAB 2009-10-15 2015-04-28
和代码:
data = {'ID':['A', 'A', 'A', 'A'], 'Type':['AA', 'AA', 'AAB', 'AAB'], 'Date installed': ['2008-07-15',
'2008-12-29', '2009-10-15', '2014-11-13'], 'Date removed': ['2008-12-29', '2009-10-15', '2010-08-27', '2015-04-28']}
df.set_index(['ID', 'Type'], inplace=True)
使用GroupBy.agg
的字典骨料min
和max
:
df[['Date installed','Date removed']] = df[['Date installed','Date removed']].apply(pd.to_datetime)
df = df.groupby(level=[0,1]).agg({'Date installed':'min', 'Date removed':'max'})
print (df)
Date installed Date removed
ID Type
A AA 2008-07-15 2009-10-15
AAB 2009-10-15 2015-04-28
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句