你好,網路的人們,
我有一個資料框,其中包含“日期”(日期時間)作為索引,TMAX 作為具有值的列: tmax 資料框
我要做的是檢查每個月(每年)的樣本量(每個 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():
謝謝您的幫助。
uj5u.com熱心網友回復:
我可以建議嘗試以下方法。在這里,我突出顯示了將一個月中的天數計算為變數“a”的結果。然后我過濾一個月內少于 28 天的資料。它對我有用。
a = df.groupby(pd.Grouper(level='DATE', freq="M")).transform('count')
print(df[a['TMAX'] >= 28])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478158.html
