【发布时间】:2020-01-31 09:14:20
【问题描述】:
我有一个像 (1-Jan-2020, 1-Feb-2020, 1-Mar-2020) 这样的数据框。 Datetime 模块为我们提供了 Max 和 min 函数来查找最大和最小日期,即 1-Jan-2020 和 1-Mar-2020。
我尝试使用list.remove 函数将此数据框转换为列表并删除最大日期的其他选项。但这会使列表为空。谁能帮我得到输出1-Feb-2020?
提前致谢
【问题讨论】:
我有一个像 (1-Jan-2020, 1-Feb-2020, 1-Mar-2020) 这样的数据框。 Datetime 模块为我们提供了 Max 和 min 函数来查找最大和最小日期,即 1-Jan-2020 和 1-Mar-2020。
我尝试使用list.remove 函数将此数据框转换为列表并删除最大日期的其他选项。但这会使列表为空。谁能帮我得到输出1-Feb-2020?
提前致谢
【问题讨论】:
您可以使用 pandas 提供的 .nlargest 方法从数据框中获取第一个 n 最大元素。
这将返回n 最大元素的列表。
只需获取列表的最后一个元素,您的工作就应该完成了。
类似这样的:
df['dates'].nlargest(2).iloc[-1]
由于您没有任何列名,请考虑以下示例:
df = pd.DataFrame({'year': [2015, 2016],
'month': [2, 3],
'day': [4, 5]})
dataframe = pd.to_datetime(df)
second_max_date = dataframe.nlargest(2).iloc[-1]
【讨论】:
max 和min 相同的方法。而不是max,min 使用.nlargest 应该可以。