【问题标题】:Selecting rows with a particular year and month [closed]选择具有特定年份和月份的行[关闭]
【发布时间】:2014-02-19 08:36:52
【问题描述】:

我的数据框看起来像这样

 2013-12-25 |
 2013-12-25 |
 2013-12-25 |
 2013-12-25 |
 2013-12-25 |
 ....
 ....
 2014-01-01 |
 2014-01-01 |
 2014-01-01 |
 2014-01-01 |
 2014-01-01 |
 2014-01-01 |
 2014-01-01 |
 2014-01-01 |

我必须选择 2014 年和月份为 01 的所有行。

我该如何继续?

【问题讨论】:

标签: python python-2.7 pandas dataframe


【解决方案1】:

这可能不是最 Pythonic 的方式,但您可以只对日期进行切片。

df[(df['datecol'] >= pd.datetime(2014, 1, 1)) & (df['datecol'] <= pd.datetime(2014, 1, 31))]

或者,您可以为标准创建一个地图,以在月份和年份上进行布尔选择。

crit1 = df['datecol'].map(lambda x : x.year == 2014)
crit2 = df['datecol'].map(lambda x : x.month == 1)

df[crit1 & crit2]

【讨论】:

  • 谢谢,更紧凑的解决方案:df[df['datecol'].map(lambda x : (x.year == 2014) &amp; (x.month == 1))]
猜你喜欢
  • 2015-04-03
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
  • 2021-07-28
相关资源
最近更新 更多