2016-12-30 27 views
1

在以下片段中,定位點的行爲與此link中所述的其餘日期不同。MonthBegin當前月份包含錨定日期

有沒有一種方法可以輕鬆地改變行爲,使其忽略定位點以表現其他日期的行爲?

在:

import pandas as pd 
import numpy as np 

index = pd.date_range(start = '1/1/2016', end = '1/31/2016') 

index + pd.offsets.MonthBegin(0) 

輸出:

DatetimeIndex(['2016-01-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01', '2016-02-01', 
        '2016-02-01', '2016-02-01', '2016-02-01'], 
        dtype='datetime64[ns]', freq=None) 
+0

通知的第一個日期2016年1月1日是如何不同,因爲它是一個錨點?我可以修改行爲,使其在偏移量的應用中保持一致嗎? –

+0

我可以寫一個客戶功能。我只是想知道是否有東西已經內置。我有一個場景,我有一個隨機日期一堆,我想每個日期設置爲每個月的第一天的字段。 –

回答

0

考慮index

index = pd.date_range(start='1/1/2016', periods=10, freq='W') 
index 

DatetimeIndex(['2016-01-03', '2016-01-10', '2016-01-17', '2016-01-24', 
       '2016-01-31', '2016-02-07', '2016-02-14', '2016-02-21', 
       '2016-02-28', '2016-03-06'], 
       dtype='datetime64[ns]', freq='W-SUN') 

方法1 不要通過0
它怪胎這些方法。

index + pd.offsets.MonthBegin() 

DatetimeIndex(['2016-01-01', '2016-01-01', '2016-01-01', '2016-01-01', 
       '2016-01-01', '2016-02-01', '2016-02-01', '2016-02-01', 
       '2016-02-01', '2016-03-01'], 
       dtype='datetime64[ns]', freq=None) 

方法2
一種手動

pd.to_datetime(index.strftime('%Y-%m-01')) 

DatetimeIndex(['2016-01-01', '2016-01-01', '2016-01-01', '2016-01-01', 
       '2016-01-01', '2016-02-01', '2016-02-01', '2016-02-01', 
       '2016-02-01', '2016-03-01'], 
       dtype='datetime64[ns]', freq=None) 
+0

方法2將適用於我。謝謝!當我因爲某種原因通過方法1時,它會在下個月給我。我正在運行熊貓版本0.18.1。 –

+0

花了些功夫去了解這個問題。 Thx來提升它。我會記住版本差異 – piRSquared

+1

剛纔我發現你也可以做「index + pd.offsets.MonthBegin()+ pd.offsets.MonthBegin(-1)」 –

相關問題