Я пытаюсь сгруппировать свой фрейм данных и затем применить функцию к каждой строке фрейма данных:
df=pd.read_csv('stack.csv')
df['TIME_M']=pd.to_datetime(df['TIME_M'],format='%Y%m%d %H:%M:%S.%f')
df.groupby(['SYM_ROOT',df['TIME_M'].dt.date]).apply(group_increment_to_end)
def group_increment_to_end(x):
return x.iloc[0:1]
SYM_ROOT
- это переменная категории, а TIME_M
- это переменная даты и времени.
Тем не менее, я получаю следующую ошибку:
ValueError: Key 2017-01-03 00:00:00 not in level Index([2017-01-03], dtype='object', name=u'TIME_M')
Знаете ли вы, в чем причина проблемы? Это из-за того, что iloc нельзя применять к функции с несколькими индексами? Что если я захочу перебрать строки и добавить строки с помощью функции group_increment_to_end
, как мне это сделать, если я не могу использовать функцию iloc?
ОБНОВЛЕНИЕ:
Набор данных можно скачать здесь .
| SYM_ROOT | TIME_M | BEST_BID | BEST_ASK | increment | genjud_incre |
|----------|----------------------------|----------|----------|-----------|--------------|
| A | 2017-01-03 09:30:00.004712 | 45.91 | 46.12 | 0 | 4680 |
| AA | 2017-01-03 09:30:00.004014 | 28.55 | 28.57 | 0 | 4680 |