pandalar içinde saat arayla (sadece saat) için datetime sütunu filtreleyen nasıl

oy
0

Ben aşağıdaki gibi bir dataframe vardır:

datetimecolumn      valuecolumn
2017-01-03 01:00    17
2017-01-04 02:55    4
2017-01-04 05:55    4
2017-01-04 12:55    9
2017-01-04 16:55    88
2017-01-05 17:53    1
2017-01-06 10:22    74
2017-01-06 15:22    111

Şimdi sadece saat 12:00 ile 18:00 saatleri arasında olduğu satıra gerek. Olurdu:

datetimecolumn      valuecolumn
2017-01-04 12:55    9
2017-01-04 16:55    88
2017-01-05 17:53    1
2017-01-06 15:22    111

Bunu nasıl filtre uygulayabilirsiniz?

Oluştur 10/10/2019 saat 00:55
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Sana sütun değiştirmek niyetin yok datetimecolumnbiçimi, bu nedenle datetime dönüştürmek ve atamak s. Çıkar sonun dan floor('D')sadece saat bölümünü almak ve bunları karşılaştırmak için betweenbir boolean maske oluşturmak için m. Son olarak, dilimleme dfkullanarakm

s = pd.to_datetime(df.datetimecolumn)
m = (s - s.dt.floor('D')).between(pd.Timedelta('12:00:00'), pd.Timedelta('18:00:00'))

df.loc[m]

Out[190]:
     datetimecolumn  valuecolumn
3  2017-01-04 12:55            9
4  2017-01-04 16:55           88
5  2017-01-05 17:53            1
7  2017-01-06 15:22          111
Cevap 10/10/2019 saat 01:23
kaynak kullanıcı

oy
0

Yapabilir:

df[(df['datetimecolumn'] > '12:00') & (df['datetimecolumn'] < '18:00')]
Cevap 10/10/2019 saat 01:00
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more