在Python中按月在系列上拆分数据帧
我的数据帧的日期范围为每套数据的1-12个月。数据如下所示:在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
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)]