Как вывести по Н позиций из каждой компании из списка?
таблица pandas, где хранится информация по фирмам разным. по 420 данных на каждую фирму. Не могу отобрать по 20 первых строк для каждой фирмы, чтобы переформировать таблицу
import pandas as pd
stockQuotes = pd.read_json (r'D:\NeuroNet\DataBase\TimeSeriesPD.json')
stockQuotes = stockQuotes \
.rename(columns = {0: 'Company', 1: 'DataTime', 2: 'Price'})
stockQuotesCAT = stockQuotes.loc[stockQuotes.Company == 'CAT'].reset_index()
del stockQuotesCAT['index']
stockQuotesCAT.to_json('TimeSeriesCatPD.json')
stockQuotesNoCAT = stockQuotes.loc[stockQuotes.Company !=
'CAT'].reset_index()
del stockQuotesNoCAT['index']
stockQuotesNoCAT.to_json('TimeSeriesNoCatPD.json')
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Вроде как-то так должно получиться с использованием группировки и кумулятивного счётчика:
stockQuotes.loc[stockQuotes.groupby('Company').cumcount() < 20]
Если вам нужно не просто по 20 первых записей от каждой компании, а с учётом какой-то сортировки (например, по дате) - отсортируйте предварительно ваш DataFrame нужным образом.
