比较Python中的数据框日期时间列值? [复制]
Posted
技术标签:
【中文标题】比较Python中的数据框日期时间列值? [复制]【英文标题】:Comparing dataframe datetime column value in Python? [duplicate] 【发布时间】:2019-05-12 13:24:52 【问题描述】:我是熊猫新手。 我有以下熊猫数据框,其中包含以下值:
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
我想将 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
但我没有得到想要的答案。
希望我对这个问题很清楚。
【问题讨论】:
【参考方案1】:你可以这样做:
首先将时间戳列转换为 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
【讨论】:
@jezrael 知道了。也编辑了我的答案。谢谢。 @MayankPorwal 但是如果我通过time_argument = datetime.datetime(2018, 12, 11, 4, 59) . In that case it is showing me the same result as of
datetime.datetime(2018, 12, 12, 5, 1)` 。我在这里缺少什么?
@AniketMaithani 是的,它应该产生相同的结果。因为,新的 time_argument 基本上是 =2018-12-11 04:59
。因此,您正在搜索行 > 11th Dec 2018
,这基本上是数据框的最后 2 行。
感谢@MayankPorwal 的澄清。如果我想在这种情况下比较日期和时间?
@AniketMaithani 代码已经将日期与时间进行比较。只需确保为 time_argument
变量提供正确的值。它会做你想做的事。以上是关于比较Python中的数据框日期时间列值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
根据另一个数据框 python pandas 替换列值 - 更好的方法?