python按月分组_python-将行按两列分组并通过比较过滤值
我在嘗試著:
>創(chuàng)建一個新的數(shù)據(jù)框(df2)
>此新數(shù)據(jù)框?qū)琩f1中的行
>將這些行添加到df2中,我已按月份和元素對df1中的列進行了分組
>我只會選擇在df中超過其每月同等值的值(例如,如果df1中的第1個月具有超過df中的第1個月值的10個值,那么我會將這10個值包括在新數(shù)據(jù)框中)
我現(xiàn)在無法做的是將按月分組的每一行的值與df中的每月等效值(包含每月的最大值)進行比較
>我只想從df1中選擇那些值超過df中每月同級值的行
我從stackoverflow用戶那里得到了一個解決方案,該解決方案使我可以獲得每個月的最大值.問題是在某些情況下,df1中有兩個以上的值超過df中的當(dāng)月值.
這是我到目前為止的代碼:
df4 = df3[df3['Element'] =='TMAX'].groupby("Month").max()
df3_max = df4[df4.Data_Value > df_max.Data_Value]
df5 = df3[df3['Element'] =='TMIN'].groupby("Month").min()
df4_min = df5[(df5.Data_Value) < (df_min.Data_Value)]
這是df:
Data_Value
Month
1.0 217.0
2.0 194.0
3.0 317.0
4.0 306.0
5.0 367.0
6.0 406.0
7.0 406.0
8.0 372.0
9.0 372.0
10.0 328.0
11.0 256.0
12.0 194.0
df1(樣本完整數(shù)據(jù)具有> 1000行):
ID Date Element Data_Value Month
0 USW00094889 2014-11-12 TMAX 220.0 11.0
1 USC00208972 2009-04-29 TMAX 560.0 1.0
2 USC00200032 2008-05-26 TMAX 278.0 5.0
3 USC00205563 2005-11-11 TMAX 239.0 11.0
4 USC00200230 2014-02-27 TMAX -106.0 2.0
5 USW00014833 2010-10-01 TMAX 194.0 10.0
6 USC00207308 2010-06-29 TMIN 144.0 6.0
7 USC00203712 2005-10-04 TMAX 289.0 10.0
8 USW00004848 2007-12-14 TMIN -16.0 12.0
9 USC00200220 2011-04-21 TMAX 72.0 4.0
10 USC00205822 2013-01-16 TMAX 411.0 1.0
11 USC00205822 2008-05-29 TMIN 28.0 5.0
12 USC00203712 2008-10-17 TMIN 17.0 10.0
13 USC00205563 2006-05-14 TMAX 183.0 5.0
這是我的預(yù)期輸出(df2):
Data_Value
Month
1.0 560.0
1.0 411.0
因此,從df1數(shù)據(jù)幀開始,僅將第二行和第11行添加到df2中,因為這些行的值超過了df中第1個月的值
總結(jié)
以上是生活随笔為你收集整理的python按月分组_python-将行按两列分组并通过比较过滤值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JPA时间注解(转)
- 下一篇: jquery_pagination分页插