Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中按月在系列上拆分数据帧_Python_Python 3.x_Python 2.7_Pandas_Dataframe - Fatal编程技术网

在Python中按月在系列上拆分数据帧

在Python中按月在系列上拆分数据帧,python,python-3.x,python-2.7,pandas,dataframe,Python,Python 3.x,Python 2.7,Pandas,Dataframe,我的数据帧的日期范围为每套数据的1-12个月。数据如下所示: Date AB AK AR DC 0 2005-01-01 267724 37140 152536 60004 1 2005-02-01 214444 32710 149821 49280 2 2005-03-01 205938 27484 141526 41345 3 2005-04-01 99262 14562 8125

我的数据帧的日期范围为每套数据的1-12个月。数据如下所示:

     Date         AB      AK      AR      DC
  0  2005-01-01  267724 37140   152536  60004
  1  2005-02-01  214444 32710   149821  49280
  2  2005-03-01  205938 27484   141526  41345
  3  2005-04-01  99262  14562   81254   31609
  4  2005-05-01  66059  8172    50241   18705
  5  2005-06-01  33556  4880    27216   11796
  6  2005-07-01  28057  4138    20156   9126
  7  2005-08-01  25466  3892    19005   8262
  8  2005-09-01  26819  3923    18776   9480
  9  2005-10-01  60849  5942    31255   1664
.
.
日期为日期时间格式:

但当我试图通过以下方式度过10到3个月的特定时间时:

df = df.loc[(df['Date'].dt.month > 10) & (df['Date'].dt.month < 4)]
我得到一个空的df帧

我认为它可能是一个范围,但即使我设置它==某个月,它也会给我一个空帧


如何选择11月至3月的范围?

尝试在不使用.loc的情况下进行切片:


打字错误:没有大于10小于3的整数。就是这样。我还尝试了df=df.loc[df['Date'].dt.month==10&df['Date'].dt.month==4],我得到了相同的结果,我知道10和4是存在的。@jpp pandas将选择满足这两个列条件之一的行,它们不必同时满足…@jpp,哦,duh,他需要一个|,我的坏!哈哈,真的很尴尬。嘿@HelloToEarth,|是OR运算符,这意味着熊猫会选择满足任一条件的行,然而,当你使用AND运算符时,这意味着必须同时满足这两个条件。一个月不能同时大于10和小于4,也不能同时等于4和10。因此,您需要使用OR运算符|。这是不正确的。问题是输入错误,请参见问题的注释。
df = df.loc[(df['Date'].dt.month > 10) & (df['Date'].dt.month < 4)]
df = df[(df['Date'].dt.month > 10) | (df['Date'].dt.month < 4)]