0
我有人口數據幀像下面 -加快應用功能與數據幀
RegionName State 2000-01 2000-02 2000-03 2000-04 ... 2016-10 2016-11 2016-12
0 New York NY 204 300 300 124 ... 456 566 344
1 Mountain View CA 204 300 300 124 ... 456 566 344
有近~10K rows
數據集中。對於此數據集,我想從2000 to 2016
中爲每個季度的年平均人口添加列。
我寫了一個函數來apply
以如下數據框 -
import numpy as np
def quarterize(row):
quarter_to_months_map = {
'q1' : ['01', '02', '03'],
'q2' : ['04', '05', '06'],
'q3' : ['07', '08', '09'],
'q4' : ['10', '11', '12']
}
for year in range(2000, 2017):
year = '{}'.format(year)
for quarter in quarter_to_months_map.keys():
values = []
for month in quarter_to_months_map[quarter]:
values.append(row['{}-{}'.format(year, month)])
row['{}{}'.format(year, quarter)] = np.nanmean(values)
return row
df = df.apply(quarterize, axis = 1)
這工作得很好,但較小的數據集,但~10K
數據集,這將需要~10 min
。有沒有辦法讓這個更高效,更快?