Fel*_*das 3 python dataframe python-3.x pandas
我的数据集有一个 datetime 列,该列在很多天的一天中的每个小时都有一个条目。例如:
123412,2020-03-26 12:00,
123412,2020-03-27 12:00,
123412,2020-03-27 09:00,
123412,2020-03-27 09:00,
123412,2020-03-27 15:00,
123412,2020-03-26 15:00,
123412,2020-03-27 11:00,
123412,2020-03-27 12:00,
Run Code Online (Sandbox Code Playgroud)
该示例没有排序,但正如我所说,一天中的每个小时都有一个条目。
我想过滤这些数据的方法是,例如,采用 datetime 2020-03-26 12:00。然后,过滤器将返回以下行:
等等。
我试过Grouper这样的,df2 = df2.groupby(pd.Grouper(key=DATETIME, freq='D'))但没有奏效。
我怎样才能做到这一点?谢谢
您可以通过boolean indexing和按时间过滤日期时间Series.dt.time:
print (df)
a date b
0 123412 2020-03-26 12:00:00 NaN
1 123412 2020-03-27 12:00:00 NaN
2 123412 2020-03-27 09:00:00 NaN
3 123412 2020-03-27 09:00:00 NaN
4 123412 2020-03-27 15:00:00 NaN
5 123412 2020-03-26 15:00:00 NaN
6 123412 2020-03-27 11:00:00 NaN
7 123412 2020-03-27 12:00:00 NaN
d = '2020-03-26 12:00'
df = df[df['date'].dt.time.eq(pd.Timestamp(d).time())]
print (df)
a date b
0 123412 2020-03-26 12:00:00 NaN
1 123412 2020-03-27 12:00:00 NaN
7 123412 2020-03-27 12:00:00 NaN
Run Code Online (Sandbox Code Playgroud)
如果只想要唯一的日期时间:
d = '2020-03-26 12:00'
df = df.drop_duplicates('date')
df = df[df['date'].dt.time.eq(pd.Timestamp(d).time())]
print (df)
a date b
0 123412 2020-03-26 12:00:00 NaN
1 123412 2020-03-27 12:00:00 NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |