根据另一列的日期戳条件打印行

Posted

技术标签:

【中文标题】根据另一列的日期戳条件打印行【英文标题】:Printing row based on datestamp condition of another column 【发布时间】:2020-11-08 05:34:32 【问题描述】:

背景:我有一个 DataFrame ('weather_tweets'),其中包含两列感兴趣的列,weather(火星上的天气)和 date(日期天气有关)。结构如下:

目标:我正在尝试编写代码来确定最新的日期戳(date 列)并打印该行对应的 weather 列值。示例行:这是示例行:

weather_tweets = [
    ('tweet', 'weather', 'date'),
    ('Mars Weather@MarsWxReport·Jul 15InSight sol 58', 'InSight sol 580 (2020-07-14) low -88.8ºC (-127.8ºF) high -8.4ºC (16.8ºF) winds from the WNW at 5.9 m/s (13.3 mph) gusting to 15.4 m/s (34.4 mph) pressure at 7.80 hPa, '2020-07-14')]

我的代码:到目前为止,我只能编写一些乱七八糟的代码来按顺序返回最新日期,但这对我的预期结果毫无用处:latest_weather = weather_tweets.groupby(['tweet', 'weather'])['date'].transform(max) == weather_tweets['date']print(weather_tweets[latest_weather])

任何关于如何达到预期结果的建议将不胜感激。

【问题讨论】:

所以您只想打印 1 行,其中包含整个数据框中的最新日期? 你能分享一些文本格式的示例行吗? @MabelVillalba - 当然,我已经添加了一个示例行。 @ipj - 正确,但是我只需要打印该行的“天气”列值的内容 【参考方案1】:

试试:

weather_tweets[weather_tweets.date == weather_tweets.date.max()].weather

您可以在末尾添加to_frame() 以获得更优雅的数据框结果:

weather_tweets[weather_tweets.date == weather_tweets.date.max()].weather.to_frame()

或者创建新的数据框:

df_latest = weather_tweets.loc[weather_tweets.date == weather_tweets.date.max(),['weather','date']]
df_max.columns = ['latest_weather','latest_date']

【讨论】:

谢谢@ipj。无论如何我可以将每个值保存在一个变量中,以便我可以更优雅地打印?例如,将最新日期保存在 'latest_date' 变量中,并将字符串保存在 'latest_weather' 变量中的 'weather' 单元格中?您的代码确实打印了天气,还打印了索引和数据类型

以上是关于根据另一列的日期戳条件打印行的主要内容,如果未能解决你的问题,请参考以下文章

根据另一列中的更改创建带有时间戳的最后修改列

SQL - 根据另一列中的日期过滤一列的结果

如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等

根据另一列的值修改熊猫中的日期时间列

用于比较具有包含日期​​的单元格的列并将特定文本粘贴到另一列的 Vba 代码

根据来自另一列的不同值计算值