Итак, у меня есть следующие серии Panda grouped
:
Amount
Ticker Unit Date Time
FLWS SHARES 2019-01-03 - 20.0
2019-01-13 - 20.0
PIH SHARES 2019-01-13 - -10.0
VALUE 2019-01-03 - -25.0
* Я хотел сбросить индекс, чтобы удалить значение «Сумма» как мультииндекс и «выпадающий список», но затем группировка не выполняется, и это происходит только после преобразования Series в DataFrame.
Я пытаюсь перебрать группы:
for ticker, action, date, time in grouped:
print(ticker)
print(action)
print(date)
print(time)
но я получаю следующее: TypeError: 'float' object is not iterable
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Я получаю упомянутый фрейм данных из следующего:
orders = pd.DataFrame(OrderedDict([
('Ticker', tickers),
('Action', actions),
('Unit', units),
('Amount', amounts),
('Date', dates),
('Time', times),
]))
df_orders = pd.DataFrame(orders)
if not df_orders.empty:
df_orders.loc[df_orders['Action'] == 'SELL', 'Amount'] *= -1
grouped = df_orders.groupby(['Ticker', 'Unit', 'Date', 'Time'])['Amount'].apply(np.sum)
print(grouped)
, где tickers
, actions
, units
и т. Д. - все списки
EDIT:
Я подумал, что было бы лучше показать логику, в которой я хотел бы обрабатывать полученные данные.
total = 0
for ticker in tickers:
for date in dates:
if unit=='SHARES':
total += some_function(ticker, date)
else:
total += some_function(ticker, date)
обратите внимание, в этом случае каждый тикер в тикерах будет уникальным. Так как бы вы перебрали сгруппированные серии таким образом?