簡體   English   中英

從時間索引的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM