【发布时间】:2015-03-11 20:11:55
【问题描述】:
我正在运行一个循环嵌套字典的基本脚本,从每条记录中获取数据,并将其附加到 Pandas DataFrame。数据看起来像这样:
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吗? -
将行附加到 DataFrames 本质上是低效的。尝试一次性创建具有最终大小的整个 DataFrame。正如 EdChum 所说,在这种情况下,您可以使用
from_dict来执行此操作。 -
谢谢!我会试一试,看看效果如何。
标签: python python-2.7 numpy pandas