我正在嘗試獲取我在熊貓中的數據的真實價格?,F在,我只是在玩一年的數據(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
提交
取消