我想從初始值-3.9找到Dew_P Temp (C)
的pct_change。我希望在新列中使用pct_change。熊貓pct從初始值變化
來源的位置:
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
我曾嘗試循環(只要將這裏顯示的索引甚至會)的這個變化,但無濟於事:
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
我覺得問題是weather['pct_diff']
,它不需要new
它需要數據幀的最後一個值並從old
減去它
所以它的a (2.1-3.9)/3.9*100,因此我的百分比變化總是-46%。
最終的結果我想是這樣的:
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%
任何想法?謝謝!
IMO讓你期望的輸出,您的解決方案要好得多! – MaxU
這是一個非常優雅的解決方案...我想知道是否有一個爲什麼要做for循環,因爲這對我來說最合適。 – dyao
我同意,這是最成功的 – piRSquared