簡體   English   中英

如何將時間序列數據按升序排列

[英]How to arrange time series data into ascending order

我有一個帶有時間序列數據的 dataframe

時間戳 價值觀
10-26-22 上午 10 點 1個
10-26-22 09.04 上午 5個
10.26-22 上午 10.06 6個
---------- ----------
10-27-22 上午 3 點 32 分 9
10-27-22 下午 3 點 36 分 5個
10-27-22 下午 3 點 31 分 8個
---------- ----------
10-27-22 上午 3 點 37 分 8.23
10-28-22 上午 4 點 20 分 7.2

我試圖按以下方式將時間戳列按升序排序:

df.sort_values("時間戳", ascending = True, inplace= True)

但是這段代碼不起作用。 我想得到這樣的數據:

時間戳 價值觀
10-26-22 09.04 上午 1個
10-26-22 上午 10 點 5個
10-26-22 上午 10 點 06 分 6個
---------- ----------
10-27-22 上午 3 點 31 分 9
10-27-22 下午 3 點 32 分 5個
10-27-22 下午 3 點 36 分 8個
------ ----------
10-27-22 上午 3 點 37 分 8.23
10-28-22 上午 4 點 20 分 7.2

我想您需要深入了解時間戳,然后在使用 dataframe 上的 sort_values function 之前轉換格式。

您應該查看文檔。 這幾乎沒有實施。

您可以使用sort_valueskey參數在內部使用to_datetime%m-%d-%y %H.%M %p格式將字符串轉換為日期時間:

df.sort_values(by='Timestamp', key=lambda s: pd.to_datetime(s, format='%m-%d-%y %H.%M %p'))

Output:

           Timestamp  Values
1  10-26-22 09.04 AM    5.00
0  10-26-22 10.00 AM    1.00
2  10-26-22 10.06 AM    6.00
5   10-27-22 3.31 PM    8.00
3   10-27-22 3.32 AM    9.00
4   10-27-22 3.36 PM    5.00
6   10-27-22 3.37 AM    8.23
7   10-28-22 4.20 AM    7.20

或者,分配一個虛擬列:

(df.assign(key=pd.to_datetime(df['Timestamp'], format='%m-%d-%y %H.%M %p'))
   .sort_values(by='key')
)

暫無
暫無

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

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