簡體   English   中英

pandas:使用 unix 時間戳中的列過濾數據

[英]pandas: filter data using column in unix timestamp

我的dataframe一列包含 unix 時間戳。 我正在尋找一種類似於此SQL語句的按日期過濾記錄的方法:

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

過濾我的dataframe記錄。 數據log_time示例記錄如下所示,其中log_time介於2007-04-122007-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
  • 為了使用 datetime Boolean selection ,需要將log_time列轉換為 datetime 列,或者從log_time創建一個單獨的 datetime 列。
  • 使用pandas.to_datetime並為此數據指定unit='s'
import pandas as pd

# setup the dataframe
data = {'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_time
df['datetime'] = pd.to_datetime(df.log_time, unit='s')

# display(dflhead())
    id    log_time class            datetime
0  154  1176369676     A 2007-04-12 09:21:16
1  161  1176369723     E 2007-04-12 09:22:03
2   76  1176373591     C 2007-04-12 10:26:31
3   97  1176381981     A 2007-04-12 12:46:21
4   76  1176415869     C 2007-04-12 22:11:09

# select data
selected = df[df.datetime > '2007-04-13']

# display(selected)
    id    log_time class            datetime
9  161  1176437973     E 2007-04-13 04:19:33

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM