Hogyan szűrés datetime oszlop órás intervallum (csak óra) pandák

szavazat
0

Van egy dataframe mint a következő:

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

Most kell csak a sorok, ahol az óra 12:00-18:00. Az lenne:

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

Hogyan kell alkalmazni a szűrőt?

A kérdést 10/10/2019 00:55
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Gondolom nem akar változtatni oszlop datetimecolumnformátumban, úgy átalakítani, hogy a datetime és hozzárendelni s. Vonjuk sannak floor('D'), hogy csak az idő része, és hasonlítsa össze őket between, hogy hozzon létre egy logikai maszkot m. Végül, szeletelő dfsegítségévelm

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
Válaszolt 10/10/2019 01:23
a forrás felhasználó

szavazat
0

Képes csinálni:

df[(df['datetimecolumn'] > '12:00') & (df['datetimecolumn'] < '18:00')]
Válaszolt 10/10/2019 01:00
a forrás felhasználó

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