![](/img/trans.png)
[英]Parsing csv with changing timezone (due to daylight saving time) with pandas
[英]Deleting rows of daylight saving time from a time indexed pandas dataframe
我編寫了以下函數來刪除pandas數據幀中夏令時的行,因為並非每列都有切換小時的數據:
def hrsDSTdelete (df):
import pandas as pd
hrsDSTadjust = ['2000-03-26 02:00:00', ... '2012-03-25 02:00:00', '2013-03-31 02:00:00']
for DSTvalue in hrsDSTadjust:
if DSTvalue in df.index :
df = df.drop(pd.Timestamp(DSTvalue))
print 'DST hour: ', DSTvalue, " deleted!"
return df
pass
由於這在刪除單行時似乎有效,因此在嘗試使用此循環時會出現以下錯誤消息:
exceptions.TypeError:'Timestamp'對象不可迭代
我也嘗試過
df = df.ix[DSTvalue].drop
但這似乎並沒有刪除數據框中的行。 有誰知道我做錯了什么?
問題是drop
接受一個類似數組的參數labels
,而你只是傳遞一個時間戳。 你應該能夠使用列表理解而不是你的循環:
indices = [pd.Timestamp(DSTvalue) for DSTValue in hrsDSTadjust if DSTvalue in df.index]
df = df.drop(indices)
你不需要循環,試試這個:
df.drop(df.index[hrsDSTadjust])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.