J..*_*..S 3 python time-series dataframe python-3.x pandas
我正在尝试使用 pandas 数据框进行时间序列分析,发现有一些简单的方法可以选择特定的列,例如一年中的所有行、两个日期之间的行等。
例如,考虑
ind = pd.date_range('2004-01-01', '2019-08-13')
data = np.random.randn(len(ind))
df = pd.DataFrame(d, index=ind)
Run Code Online (Sandbox Code Playgroud)
在这里,我们可以选择日期“2014-01-23”和“2014-06-18”之间(包括日期)的所有行
df['2014-01-23':'2014-06-18']
Run Code Online (Sandbox Code Playgroud)
以及“2015”年的所有行
df['2015']
Run Code Online (Sandbox Code Playgroud)
是否有类似的方法来选择属于特定月份但所有年份的所有行?
我找到了使用如下语法获取特定月份和特定年份的所有行的方法
df['01-2015'] #all rows of January 2015
Run Code Online (Sandbox Code Playgroud)
我希望 pandas 能够有一种使用简单语法的方法来获取一个月的所有行,无论年份如何。这样的方式存在吗?
使用DatetimeIndex.month、比较和过滤 by with boolean indexing:
print (df[df.index.month == 1])
0
2004-01-01 2.398676
2004-01-02 2.074744
2004-01-03 0.106972
2004-01-04 0.294587
2004-01-05 0.243768
...
2019-01-27 -1.623171
2019-01-28 -0.043810
2019-01-29 -0.999764
2019-01-30 -0.928471
2019-01-31 -0.304730
[496 rows x 1 columns]
Run Code Online (Sandbox Code Playgroud)