相对于GroupBy.nth,它选择相同的索引的每个组,我想利用特定索引从每个组。例如,如果我的GroupBy对象包括四组,我会分别喜欢1日,5日,10日和15日各话,我想能够通过x = [0, 4, 9, 14]
并获得这些行。
这是一种希望有一个奇怪的事情;是有什么原因?
在任何情况下,做你想做的,试试这个:
df = pd.DataFrame([['a', 1], ['a', 2],
['b', 3], ['b', 4], ['b', 5],
['c', 6], ['c', 7]],
columns=['group', 'value'])
def index_getter(which):
def get(series):
return series.iloc[which[series.name]]
return get
which = {'a': 0, 'b': 2, 'c': 1}
df.groupby('group')['value'].apply(index_getter(which))
这会导致:
group
a 1
b 5
c 7