簡體   English   中英

如何在數據框中正確設置 Pandas 日期時間對象的日期時間索引?

[英]How do I properly set the Datetimeindex for a Pandas datetime object in a dataframe?

我有一個熊貓數據框:

    lat         lng         alt days              date        time
0   40.003834   116.321462  211 39745.175405      2008-10-24  04:12:35
1   40.003783   116.321431  201 39745.175463  2008-10-24      04:12:40
2   40.003690   116.321429  203 39745.175521      2008-10-24      04:12:45
3   40.003589   116.321427  194 39745.175579      2008-10-24      04:12:50
4   40.003522   116.321412  190 39745.175637      2008-10-24      04:12:55
5   40.003509   116.321484  188 39745.175694      2008-10-24      04:13:00

為此,我試圖將 df['date'] 和 df['time'] 列轉換為日期時間。 我可以:

df['Datetime'] = pd.to_datetime(df['date']+df['time'])
df = df.set_index(['Datetime'])
del df['date']
del df['time']

我得到:

                    lat         lng         alt days
Datetime                            
2008-10-2404:12:35  40.003834   116.321462  211 39745.175405    
2008-10-2404:12:40  40.003783   116.321431  201 39745.175463
2008-10-2404:12:45  40.003690   116.321429  203 39745.175521    
2008-10-2404:12:50  40.003589   116.321427  194 39745.175579    
2008-10-2404:12:55  40.003522   116.321412  190 39745.175637

但是如果我嘗試:

df.between_time(time(1),time(22,59,59))['lng'].std()

我收到一個錯誤 - 'TypeError: Index must be DatetimeIndex'

所以,我也試過設置 DatetimeIndex:

df['Datetime'] = pd.to_datetime(df['date']+df['time'])
#df = df.set_index(['Datetime'])
df = df.set_index(pd.DatetimeIndex(df['Datetime']))
del df['date']
del df['time']

這也會引發錯誤 - 'DateParseError: unknown string format'

如何正確創建日期時間列和 DatetimeIndex 以便 df.between_time() 正常工作?

為了簡化基魯巴哈蘭的回答

df['Datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'])
df = df.set_index('Datetime')

並擺脫不需要的列(正如 OP 所做的那樣,但沒有在問題中本身指定):

df = df.drop(['date','time'], axis=1)

您沒有正確創建日期時間索引,

format = '%Y-%m-%d %H:%M:%S'
df['Datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'], format=format)
df = df.set_index(pd.DatetimeIndex(df['Datetime']))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM