【问题标题】:Return specific dates, months from any year using python date time使用python日期时间返回任何一年的特定日期、月份
【发布时间】:2017-11-10 18:00:38
【问题描述】:

为了澄清,我实际上需要返回多个月,例如 10 月到 12 月。

我有一个包含 10000 行的数据框,其中我的索引是时间戳。我想获取数据框中所有年份的特定月份之间的值。

我已经尝试过:print(df.loc['%Y-10-01':'%Y-12-31']) 以及 YYYY****%y,但我不知道如何返回与任何年份匹配的日期时间对象。

数据框df 看起来像这样:

2015-07-13  0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    17.018001   0.000000    0.000000    0.000000
2017-07-27  0.000000    1.016000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000
2017-07-03  1.778000    12.700000   3.048000    7.874000    5.588000    2.540000    28.448001   26.670000   58.420003   19.812001   12.446000

【问题讨论】:

  • df.iloc[df.index.month == 7] 应该足够了。
  • 我更新了我的问题,因为我只需要一个多月的输出。
  • 添加了我的答案...看看是否是您想要的。

标签: python pandas datetime dataframe


【解决方案1】:

对于您的特定问题,isin 检查几个月的范围似乎是最简单的:

df.iloc[df.index.month.isin(np.r_[10:13])]

np.r_ 可以方便地指定间歇范围。例如,如果您想要 1 月至 2 月、4 月和 10 月至 12 月,请使用:

i = np.r_[1:3, 4, 10:13]

i
array([ 1,  2,  4, 10, 11, 12])

【讨论】:

  • 谢谢!你很有帮助@cᴏʟᴅsᴘᴇᴇᴅ
猜你喜欢
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2013-02-15
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多