簡體   English   中英

僅檢索至少有 28 個樣本日的月份 - pandas dataframe

[英]retrieve only months with at least 28 sample days - pandas dataframe

web的人您好,

我有一個 dataframe 包含“DATE”(日期時間)作為索引和 TMAX 作為列值: tmax dataframe

我想做的是檢查每個月(每年)的樣本量(每個 TMAX 列值都被視為一個樣本)。 如果我的樣本少於 28 個,我想刪除那個特定月份(特定年份)及其所有樣本。

我有以下代碼:

if __name__ == '__main__':
    df = pd.read_csv("2961941.csv")

    # set date column as index, drop the 'DATE' column to avoid repititions + create as datetime object
    # speed up parsing using infer_datetime_format=True.
    df['DATE'] = pd.to_datetime(df['DATE'], infer_datetime_format=True)
    df.set_index('DATE', inplace=True)

    # create new table out of 'DATE' and 'TMAX'
    tmax = df.filter(['DATE', 'TMAX'], axis=1)
    # erase rows with missing data
    tmax.dropna()
    # create snow table & delete rows with missing info
    snow = df.filter(['DATE', 'SNOW']).dropna()
    # for index, row in tmax.iterrows():

謝謝您的幫助。

我可以建議嘗試以下方法。 在這里,我突出顯示了將一個月中的天數計入變量“a”的結果。 然后我過濾一個月中少於28天的數據。 它對我有用。

a = df.groupby(pd.Grouper(level='DATE', freq="M")).transform('count')
print(df[a['TMAX'] >= 28])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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