簡體   English   中英

如何在DateTimeIndex中選擇唯一日期行

[英]How to select rows of unique dates in DateTimeIndex

假設我有一個帶有DateTimeIndex的DataFrame,如下所示:

Date_TimeOpen   High    Low     Close   Volume  
2018-01-22 11:05:00 948.00  948.10  947.95  948.10  9820.0
2018-01-22 11:06:00 948.10  949.60  948.05  949.30  33302.0
2018-01-22 11:07:00 949.25  949.85  949.20  949.85  20522.0
2018-03-27 09:15:00 907.20  908.80  905.00  908.15  126343.0
2018-03-27 09:16:00 908.20  909.20  906.55  906.60  38151.0
2018-03-29 09:30:00 908.90  910.45  908.80  910.15  46429.0

我想只選擇每個唯一日期的第一行(丟棄時間),以便得到如下輸出:

Date_Time   Open    High    Low     Close   Volume
2018-01-22 11:05:00 948.00  948.10  947.95  948.10  9820.0
2018-03-27 09:15:00 907.20  908.80  905.00  908.15  126343.0
2018-03-29 09:30:00 908.90  910.45  908.80  910.15  46429.0

我嘗試使用lociloc但它有助於幫助。

任何幫助將不勝感激。

您需要日期分組並獲取每個組的第一個元素:

import pandas as pd

data = [['2018-01-22 11:05:00', 948.00, 948.10, 947.95, 948.10, 9820.0],
        ['2018-01-22 11:06:00', 948.10, 949.60, 948.05, 949.30, 33302.0],
        ['2018-01-22 11:07:00', 949.25, 949.85, 949.20, 949.85, 20522.0],
        ['2018-03-27 09:15:00', 907.20, 908.80, 905.00, 908.15, 126343.0],
        ['2018-03-27 09:16:00', 908.20, 909.20, 906.55, 906.60, 38151.0],
        ['2018-03-29 09:30:00', 908.90, 910.45, 908.80, 910.15, 46429.0]]

df = pd.DataFrame(data=data)
df = df.set_index([0])
df.columns = ['Open', 'High', 'Low', 'Close', 'Volume']

result = df.groupby(pd.to_datetime(df.index).date).head(1)

print(result)

產量

                      Open    High     Low   Close    Volume
0                                                           
2018-01-22 11:05:00  948.0  948.10  947.95  948.10    9820.0
2018-03-27 09:15:00  907.2  908.80  905.00  908.15  126343.0
2018-03-29 09:30:00  908.9  910.45  908.80  910.15   46429.0

暫無
暫無

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

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