返回 Pandas 中按名称过滤的列的最后一个值
Returning last value of a column filtered by name in Pandas
我有这样的数据集:
DATE,OPTION,SELL,BUY,DEAL
2015-01-01 11:00:01, blah1,0,1,open
2015-01-01 11:00:01, blah2,0,1,open
2015-01-01 11:00:01, blah3,0,1,open
2015-01-01 11:00:02, blah1,0,1,open
2015-01-01 11:00:02, blah2,0,1,open
2015-01-01 11:00:02, blah3,0,1,open
我在 pandas 中阅读它使用:
df = pd.DataFrame.from_csv(csv_data)
没问题。
你如何return last "SELL" 值 "blah2" ?
谢谢
(df[df['OPTION'] == 'blah2']).tail(1)['SELL']
获取所有期权的最后卖出价:
df[['SELL','OPTION']].groupby("OPTION").apply(lambda x: x.tail(1))
您可以按 OPTION 对其进行分组并获取给定组的最后一行,如下所示:
import pandas as pd
df = pd.read_csv('data.csv')
grouped_df = df.groupby('OPTION')
print(grouped_df.get_group(' blah2').tail(1))
这给出:
4 2015-01-01 11:00:02 blah2 0 1 open
b[b['OPTION']=='blah2'].iloc[-1]['SELL']
有一个方便的方法last
可以在groupby对象上调用,这个returns每个组的最后一个值,然后我们可以在索引值上过滤这个df:
In [75]:
gp = df.groupby('OPTION').last()
gp
Out[75]:
DATE SELL BUY DEAL
OPTION
blah1 2015-01-01 11:00:02 0 1 open
blah2 2015-01-01 11:00:02 0 1 open
blah3 2015-01-01 11:00:02 0 1 open
In [76]:
gp[gp.index == ' blah2']
Out[76]:
DATE SELL BUY DEAL
OPTION
blah2 2015-01-01 11:00:02 0 1 open
我有这样的数据集:
DATE,OPTION,SELL,BUY,DEAL
2015-01-01 11:00:01, blah1,0,1,open
2015-01-01 11:00:01, blah2,0,1,open
2015-01-01 11:00:01, blah3,0,1,open
2015-01-01 11:00:02, blah1,0,1,open
2015-01-01 11:00:02, blah2,0,1,open
2015-01-01 11:00:02, blah3,0,1,open
我在 pandas 中阅读它使用:
df = pd.DataFrame.from_csv(csv_data)
没问题。
你如何return last "SELL" 值 "blah2" ?
谢谢
(df[df['OPTION'] == 'blah2']).tail(1)['SELL']
获取所有期权的最后卖出价:
df[['SELL','OPTION']].groupby("OPTION").apply(lambda x: x.tail(1))
您可以按 OPTION 对其进行分组并获取给定组的最后一行,如下所示:
import pandas as pd
df = pd.read_csv('data.csv')
grouped_df = df.groupby('OPTION')
print(grouped_df.get_group(' blah2').tail(1))
这给出:
4 2015-01-01 11:00:02 blah2 0 1 open
b[b['OPTION']=='blah2'].iloc[-1]['SELL']
有一个方便的方法last
可以在groupby对象上调用,这个returns每个组的最后一个值,然后我们可以在索引值上过滤这个df:
In [75]:
gp = df.groupby('OPTION').last()
gp
Out[75]:
DATE SELL BUY DEAL
OPTION
blah1 2015-01-01 11:00:02 0 1 open
blah2 2015-01-01 11:00:02 0 1 open
blah3 2015-01-01 11:00:02 0 1 open
In [76]:
gp[gp.index == ' blah2']
Out[76]:
DATE SELL BUY DEAL
OPTION
blah2 2015-01-01 11:00:02 0 1 open