簡體   English   中英

使用 Pandas Python 格式化數據庫中的唯一日期

[英]formatting unique dates in a database with Pandas Python

我將如何編寫代碼,在其中為data.csv中的每個給定日期僅提供 1 個輸出。 我想選擇第一個日期值作為唯一行並刪除所有其他日期值,就像它在預期輸出中的顯示方式一樣。3 行的日期值為2021-10-31 13:17:00第一個而忽略其余的。 我將如何能夠實現這一目標?

代碼:

data = pd.read_csv('data.csv')
dates= pd.to_datetime(data['Date'].to_list())

data.csv 文件內容:

Date,Symbol,Open,High,Low,Close,Volume
2021-10-31 13:16:00,BTCUSD,60568.0,60640.0,60568.0,60638.0,3.9771881707839967
2021-10-31 13:15:00,BTCUSD,60620.0,60633.0,60565.0,60568.0,1.3977284440628714
2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4357009185659157
2021-10-31 13:17:00,BTCUSD,60648.0,60650.0,60638.0,60638.0,0.42475009155665155
2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4564009185659157
2021-10-31 13:16:00,BTCUSD,60588.0,60620.0,60510.0,60618.0,3.9771881707839967

預期輸出:

Date,Symbol,Open,High,Low,Close,Volume
2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4357009185659157
2021-10-31 13:16:00,BTCUSD,60568.0,60640.0,60568.0,60638.0,3.9771881707839967
2021-10-31 13:15:00,BTCUSD,60620.0,60633.0,60565.0,60568.0,1.3977284440628714

我們先做sort_values然后drop_duplicates

out = df.sort_values('Date',ascending=False).drop_duplicates('Date')
Out[44]: 
                  Date  Symbol     Open     High      Low    Close    Volume
2  2021-10-31 13:17:00  BTCUSD  60638.0  60640.0  60636.0  60638.0  0.435701
0  2021-10-31 13:16:00  BTCUSD  60568.0  60640.0  60568.0  60638.0  3.977188
1  2021-10-31 13:15:00  BTCUSD  60620.0  60633.0  60565.0  60568.0  1.397728

暫無
暫無

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

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