【发布时间】:2020-01-13 00:59:13
【问题描述】:
首先,我有一个带有以下列的 pandas 数据框: "YEAR","1DIGIT","2DIGITS","3DIGITS","SIZE","CODE","VALUE" 180 万行。 这是我纠正数据的代码:
for year in list(data.YEAR.unique()):
data1 = data[data.YEAR == year]
for dig in list(data1.3DIGITS.unique()):
data2 = data1[data1.3DIGITS == dig]
for size in list(data2.SIZE.unique()):
data3 = data2[data2.SIZE == size]
data.loc[(data.YEAR == year)&(data.3DIGITS == dig)&(data.CODE == 9122),"VALUE") = data3[data3.CODE.isin(9001,9057)].VALUE.sum()
如您所见,我想将代码 9001 和 9057 的值相加,并将其分配给代码 9122 的值。这可行,但速度很慢,大约需要 1 个半小时。我们可以做些什么来让它更快?
【问题讨论】:
-
这可能更适合代码审查
-
你能举个简单的例子吗
标签: python-3.x pandas dataframe optimization python-3.7