0
我想將日期觀察值從一列轉換爲我的數據框的索引。我可以用下面的代碼來做到這一點:在自定義函數中使用set_index
的樣本數據:
test = pd.DataFrame({'Values':[1,2,3], 'Date':["1/1/2016 17:49","1/2/2016 7:10","1/3/2016 15:19"]})
索引代碼:
test['Date Index'] = pd.to_datetime(test['Date'])
test = test.set_index('Date Index')
test['Index'] = test.index.date
但是當我嘗試包括在一個函數的代碼,我可以創建'日期索引'列,但似乎沒有按預期工作。
def date_index(df):
df['Date Index'] = pd.to_datetime(df['Date'])
df = df.set_index('Date Index')
df['Index'] = df.index.date
如果我檢查不使用功能info()
返回的輸出:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 3 entries, 2016-01-01 17:49:00 to 2016-01-03 15:19:00
Data columns (total 3 columns):
Date 3 non-null object
Values 3 non-null int64
Index 3 non-null object
dtypes: int64(1), object(2)
memory usage: 96.0+ bytes
如果我檢查功能info()
返回的輸出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
Date 3 non-null object
Values 3 non-null int64
dtypes: int64(1), object(1)
memory usage: 120.0+ bytes
我想DatetimeIndex
。
如何在一個函數內使用?我使用不正確?
test.info()的'的輸出'使用函數時是不同的。我想要一個DatetimeIndex。請參閱編輯以提問。 –
有趣的是,對我來說它很好。請檢查編輯。 – jezrael
你輸出的區別在於你使用了'date_index(df1).info()',我正在使用'df1.info()'。我認爲這種區別很重要,因爲如果您使用自定義的'date_index()'函數,我最終在dataframe上使用'df1.index.values',從而得到不同的結果。 –