I want to find pct_change Dew_P Temp (C) from an initial value of -3.9. I want pct_change in a new column.
Source here:
weather = pd.read_csv('https://raw.githubusercontent.com/jvns/pandas-cookbook/master/data/weather_2012.csv') weather[weather.columns[:4]].head() Date/Time Temp (C) Dew_P Temp (C) Rel Hum (%) 0 2012-01-01 -1.8 -3.9 86 1 2012-01-01 -1.8 -3.7 87 2 2012-01-01 -1.8 -3.4 89 3 2012-01-01 -1.5 -3.2 88 4 2012-01-01 -1.5 -3.3 88
I tried variations of this loop (even if I add the index shown here), but to no avail:
for index, dew_point in weather['Dew_P Temp (C)'].iteritems(): new = weather['Dew_P Temp (C)'][index] old = weather['Dew_P Temp (C)'][0] pct_diff = (new-old)/old*100 weather['pct_diff'] = pct_diff
I think the problem is weather['pct_diff'] , it does not accept new , it takes the last value of the data frame and subtracts it from old
Therefore, its always (2.1-3.9) /3.9*100, so my percentage change is always -46%.
As a result, I want:
Date/Time Temp (C) Dew_P Temp (C) Rel Hum (%) pct_diff 0 2012-01-01 -1.8 -3.9 86 0.00% 1 2012-01-01 -1.8 -3.7 87 5.12% 2 2012-01-01 -1.8 -3.4 89 12.82%
Any ideas? Thanks!
source share