pandas:使用unix时间戳中的列过滤数据

我的一列dataframe包含 unix 时间戳。我正在寻找一种按日期过滤记录的方法,类似于此SQL语句:


SELECT * FROM mytable WHERE to_timestamp(log_time) < '2007-04-13';

过滤我的dataframe. 数据框中的示例记录如下所示,其中log_time和2007-04-12之间2007-04-13:


df.head(10)

id  log_time    class

154 1176369676  A

161 1176369723  E

76  1176373591  C

97  1176381981  A

76  1176415869  C

82  1176421986  B 

154 1176421986  A

163 1176421986  B

161 1176421986  D

161 1176437973  E


郎朗坤
浏览 154回答 1
1回答

FFIVE

为了使用 datetime布尔选择,log_time需要将该列转换为 datetime 列,或者创建一个单独的 datetime 列log_time。对于此数据,使用pandas.to_datetime并指定, 。unit='s'import pandas as pd# setup the dataframedata = {'id': [154, 161, 76, 97, 76, 82, 154, 163, 161, 161],        'log_time': [1176369676, 1176369723, 1176373591, 1176381981, 1176415869, 1176421986, 1176421986, 1176421986, 1176421986, 1176437973],        'class': ['A', 'E', 'C', 'A', 'C', 'B', 'A', 'B', 'D', 'E']}df = pd.DataFrame(data)# create a datetime column from log_timedf['datetime'] = pd.to_datetime(df.log_time, unit='s')# display(dflhead())    id    log_time class            datetime0  154  1176369676     A 2007-04-12 09:21:161  161  1176369723     E 2007-04-12 09:22:032   76  1176373591     C 2007-04-12 10:26:313   97  1176381981     A 2007-04-12 12:46:214   76  1176415869     C 2007-04-12 22:11:09# select dataselected = df[df.datetime > '2007-04-13']# display(selected)    id    log_time class            datetime9  161  1176437973     E 2007-04-13 04:19:33
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python