我在熊猫中有以下数据框
Date time tank stock
01-01-2018 05:30:00 1 4567
01-01-2018 03:30:00 1 2345
01-01-2018 04:30:00 1 1234
01-01-2018 08:00:00 1 3345
02-01-2018 06:30:00 2 4489
02-01-2018 03:30:00 2 1290
02-01-2018 11:30:00 2 6578
02-01-2018 10:00:00 2 3444
我想用日期,时间和储罐对数据框进行排序,然后从库存中进行第一个和最后一个观察。
Sorted Dataframe
Date time tank stock
01-01-2018 03:30:00 1 2345
01-01-2018 04:30:00 1 1234
01-01-2018 08:00:00 1 3345
01-01-2018 05:30:00 1 4567
02-01-2018 03:30:00 2 1290
02-01-2018 06:30:00 2 4489
02-01-2018 10:00:00 2 3444
02-01-2018 11:30:00 2 6578
Desired dataframe
Date tank first_stock last_stock
01-01-2018 1 2345 4567
02-01-2018 2 1290 6578
为了排序,我在python中使用以下脚本
df = df.groupby(['Date','tank']).apply(lambda x: x.sort_values(['time'],ascending = True))
但是,如何获得最终的数据帧?
答案 0 :(得分:3)
使用sort_values
并指定所有3列,然后汇总first
和
last
:
const object = {
a: {
b: [
'something',
{ c: 'the thing that I need' }
],
},
};
const path = [ 'a', 'b', '1', 'c' ];
const result = path.reduce(( source, next ) => source[ next ], object );
console.log( result );
详细信息:
df = (df.sort_values(['Date','tank', 'time'])
.groupby(['Date','tank'])['stock']
.agg(['first','last'])
.reset_index())
print (df)
Date tank first last
0 01-01-2018 1 2345 3345
1 02-01-2018 2 1290 6578