在Python中比较数据框日期时间列值?

Ani*_*ani 0 python pandas

我是熊猫新手。我有以下 pandas 数据框,其中包含以下值:

index print_statement      timestamp 
0     echo "I AM HAPPY2" 2018-11-12 08:01:00       
1     echo "I AM HAPPY3" 2018-11-12 08:01:00       
2     echo "I AM HAPPY1" 2018-11-12 08:01:00       
3     echo "I AM HAPPY4" 2018-12-12 08:02:00      
4     echo "I AM HAPPY5" 2018-12-13 08:02:00  
Run Code Online (Sandbox Code Playgroud)

我想将 df 进行比较: - 假设我有一个 time_argument ,它是datetime.datetime(2018, 12, 12, 5, 1)。我想将结果存储在另一个dataframe时间戳> time_argument 中。

我尝试使用以下方法:

for index, row in df.iterrows():
     date_store = row['time_to_expire']
     if date_store.to_pydatetime() >= ii:
         df_final = row
Run Code Online (Sandbox Code Playgroud)

但我没有得到想要的答案。

希望我能清楚地回答这个问题。

May*_*wal 5

你可以这样做:

首先将时间戳列转换为 Pandas 日期时间:

In [2346]: df.timestamp = pd.to_datetime(df.timestamp)
In [2347]: df
Out[2347]: 
      print_statement           timestamp
0  echo "I AM HAPPY2" 2018-11-12 08:01:00
1  echo "I AM HAPPY3" 2018-11-12 08:01:00
2  echo "I AM HAPPY1" 2018-11-12 08:01:00
3  echo "I AM HAPPY4" 2018-12-12 08:02:00
4  echo "I AM HAPPY5" 2018-12-13 08:02:00

In [2348]: time_argument = datetime.datetime(2018, 12, 12, 5, 1)

In [2350]: result = df[df.timestamp > time_argument]
Out[2350]: result
      print_statement           timestamp
3  echo "I AM HAPPY4" 2018-12-12 08:02:00
4  echo "I AM HAPPY5" 2018-12-13 08:02:00
Run Code Online (Sandbox Code Playgroud)