![](/img/trans.png)
[英]using python i want to apply ifelse condition for 28 days (February) and 30/31 days (others Months) inside function for 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.