2014-06-09 35 views
1

我想上傳我的數據。我希望通過重新採樣轉換成5分鐘的數據,並在小時之間用線性插值填充缺失的數據。通過熊貓數據幀進行互動

Wind_locations.csv,數據幀有一個名爲'CH'的列。我想遍歷'CH'的每一行並從當前減去下一行。這是我認爲它應該起作用的方式,但這不是,有什麼建議嗎?

我嘗試使用
data = pd.read_csv('Wind_Locations.csv')
data.CH.resample('5min', how='sum')

但我得到的錯誤TypeError: Only valid with DatetimeIndex or PeriodIndex

有什麼建議?

+0

當考慮涉及後續和前面的行的計算,你應該考慮使用'shift',這是爲什麼設計的 – EdChum

+0

謝謝!如果我想在每個原始行之間添加11行,該怎麼辦? – andrewrmunro

+0

你的意思是你想要一起添加11行或迭代12行,併爲每一行添加下一行?對於後一種情況,使用'data.CH.shift()' – EdChum

回答

0
import pandas as pd 
import numpy as np 

data = pd.read_csv('Wind_Locations.csv') 
length = len(data.CH) 

# create series with nans 
new = pd.Series(np.empty(length*11-1) * np.nan) 
# iterate over data's values and assign to every 12th value of new 
for i in range(length): 
    new.iloc[i*12] = data.iloc[i] 
# fill in nans with interpolated values 
new = new.interpolate() 
+0

我嘗試了你的解決方案,但它給了我以下錯誤:AttributeError:'DataFrame'對象沒有屬性'iloc' – andrewrmunro

+0

這似乎適用於我,而不是非常優雅,但它的工作原理如下:CH = pd.Series(np.empty(length * 12)* np.nan) for i,row in enumerate(data.CH): CH [i * 12] = data.CH [i] CH = CH.interpolate()' – andrewrmunro

+0

抱歉,遲到的回覆@andrewrmunro。我沒有注意到(使用標籤聯繫用戶)。你的錯誤意味着你正在使用過期版本的熊貓。如果你升級到最新版本,這個例子就可以運行。 – Kracit