Я запускаю базовый скрипт, который перебирает через вложенный словарь, захватывает данные из каждой записи и добавляет его в Pandas DataFrame. Данные выглядят примерно так:Улучшить Row Append Performance On Pandas DataFrames
data = {"SomeCity": {"Date1": {record1, record2, record3, ...}, "Date2": {}, ...}, ...}
Всего у него несколько миллионов записей. Сам скрипт выглядит так:
city = ["SomeCity"]
df = DataFrame({}, columns=['Date', 'HouseID', 'Price'])
for city in cities:
for dateRun in data[city]:
for record in data[city][dateRun]:
recSeries = Series([record['Timestamp'],
record['Id'],
record['Price']],
index = ['Date', 'HouseID', 'Price'])
FredDF = FredDF.append(recSeries, ignore_index=True)
Это работает очень медленно, однако. Прежде чем искать способ распараллеливать его, я просто хочу удостовериться, что я не пропущу что-то очевидное, что сделало бы это быстрее, как я, поскольку я все еще новичок в Pandas.
вы смотрели на [ 'from_dict'] (http://pandas.pydata.org/pandas-docs/ стабильный/генерироваться/pandas.DataFrame.from_dict.html # pandas.DataFrame.from_dict)? – EdChum
Добавление строк в DataFrames по своей сути неэффективно. Попытайтесь создать весь DataFrame с его окончательным размером за один раз. Как говорит EdChum, в этом случае вы, вероятно, можете сделать это с помощью 'from_dict'. – BrenBarn
Спасибо! Я попробую и посмотрю, как это работает. – Brideau