Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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_Pandas_Datetime - Fatal编程技术网

Python 熊猫:制作每月一次的数据帧切片

Python 熊猫:制作每月一次的数据帧切片,python,pandas,datetime,Python,Pandas,Datetime,我想每月切片一个数据帧df。如何将numpy作为np导入 import pandas as pd df = pd.DataFrame(np.random.random((200,3))) df['date'] = pd.date_range('2017-1-1', periods=200, freq='D') mask = (df['date'] == pd.to_datetime('2017-06')) # ??? all rows for JUNE ??? print(df.loc[mas

我想每月切片一个数据帧df。如何将numpy作为np导入

import pandas as pd

df = pd.DataFrame(np.random.random((200,3)))
df['date'] = pd.date_range('2017-1-1', periods=200, freq='D')
mask = (df['date'] == pd.to_datetime('2017-06')) # ??? all rows for JUNE ???
print(df.loc[mask])

如果需要仅按月份和年份进行比较,则不重要使用:

但如果需要按月周期进行比较,
很重要,请使用:

解决方案包括:

mask = (df['date'].dt.month == pd.to_datetime('2017-06').month)
#same as
#mask = (df['date'].dt.month == 6) 
print(df.loc[mask])
            0         1         2       date
151  0.667722  0.421487  0.338626 2017-06-01
152  0.712709  0.984242  0.419231 2017-06-02
153  0.509679  0.319629  0.651422 2017-06-03
154  0.987976  0.937703  0.278857 2017-06-04
...
mask = (df['date'].dt.to_period('M') == pd.to_datetime('2017-06').to_period('M')) 
print(df.loc[mask])
            0         1         2       date
151  0.702137  0.873511  0.458284 2017-06-01
152  0.809441  0.888400  0.350705 2017-06-02
153  0.425821  0.712912  0.339203 2017-06-03
154  0.151374  0.154301  0.923882 2017-06-04
...
df = df.set_index('date')
print(df.loc['2017-06'])
                   0         1         2
date                                    
2017-06-01  0.785634  0.496983  0.786512
2017-06-02  0.280444  0.091523  0.468411
2017-06-03  0.429112  0.510265  0.885642
2017-06-04  0.037233  0.034625  0.515339
2017-06-05  0.863211  0.632449  0.396963
2017-06-06  0.550682  0.975060  0.182594
...