所以我的代码如下:
df['Dates'][df['Dates'].index.month == 11]
Run Code Online (Sandbox Code Playgroud)
我正在做一个测试,看看我是否可以过滤几个月,所以它只显示11月的日期,但这不起作用.它给出了以下错误:AttributeError:'Int64Index'对象没有属性'month'.
如果我做
print type(df['Dates'][0])
Run Code Online (Sandbox Code Playgroud)
然后我得到类'pandas.tslib.Timestamp',这让我相信存储在数据帧中的对象类型是Timestamp对象.(我不确定"Int64Index"来自哪里......以前的错误)
我想要做的是:数据框列包含从2000年代早期到现在的日期格式:dd/mm/yyyy.我想仅在11月15日到3月15日期间过滤日期,与年份无关.最简单的方法是什么?
谢谢.
这是df ['Dates'](带索引):
0 2006-01-01
1 2006-01-02
2 2006-01-03
3 2006-01-04
4 2006-01-05
5 2006-01-06
6 2006-01-07
7 2006-01-08
8 2006-01-09
9 2006-01-10
10 2006-01-11
11 2006-01-12
12 2006-01-13
13 2006-01-14
14 2006-01-15
...
Run Code Online (Sandbox Code Playgroud) 我目前有一个pandas.DataFrame,其中有一个pandas.DatetimeIndex和一组值。
我想从此排除给定的所有日期。pandas.date_rangepandas.DataFrame
示例代码:
dates = pd.date_range(start='04/01/2012', end='04/01/2019', freq='MS')
df = pd.DataFrame(data=[100]*len(dates),index=dates,columns=["val"])
exclusion_dates = pd.date_range(start='04/01/2012', end='04/01/2019', freq=pd.offsets.DateOffset(months=12))
Run Code Online (Sandbox Code Playgroud)
我的尝试:
df.loc[~exclusion_dates,:]
Run Code Online (Sandbox Code Playgroud)
理想情况下,这将导致df包含除1st April YYYY
但是,这会导致以下错误:
类型错误:一元 ~ 的操作数类型错误:“DatetimeIndex”
我查看了下面的线程,但是找不到任何内容: Filtering Pandas DataFrames on date