我正在尝试获取我在熊猫中的数据的真实价格。现在,我只是在玩一年的数据(3962050 行),我花了 443 秒使用下面的代码来膨胀这些值。有没有更快的方法来找到真正的价值?是否可以使用池化?我还有很多年,如果每次都等太久。Portion of df: year quarter fare0 1994 1 213.981 1994 1 214.00 2 1994 1 214.003 1994 1 214.50 4 1994 1 214.50 import cpiimport pandas as pddef inflate_column(data, column): """ Adjust for inflation the series of values in column of the dataframe data. Using cpi library. """ print('Beginning to inflate ' + column) start_time = time.time() df = data.apply(lambda x: cpi.inflate(x[column], x.year), axis=1) print("Inflating process took", time.time() - start_time, " seconds to run") return dfdf['real_fare'] = inflate_column(df, 'fare')
1 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
每年您有多个值:您可以每年调用一个值,将其存储在 dict 中,然后使用该值而不是每次都调用cpi.inflate。
all_years = df["year"].unique()
dict_years = {}
for year in all_years:
dict_years[year] = cpi.inflate(1.0, year)
df['real_fare'] = # apply here: dict_years[row['year']]*row['fare']
您可以使用 apply 填写最后一行,或者尝试以其他方式进行操作,例如df['real_fare']=df['fare']*...
添加回答
举报
0/150
提交
取消
