簡體   English   中英

Python:在 dataframe 中獲取唯一日期

[英]Python: take unique dates in dataframe

我有一個看起來像這樣的數據框:

                       price
Date
2022-01-01 19:20:00    100   
2022-01-01 19:27:00    100
2022-01-02 19:31:00    102

我希望 dataframe 只有唯一日期:

                       price
Date
2022-01-01 19:20:00    100   
2022-01-02 19:31:00    102

我怎樣才能做到這一點?

您可以使用以下命令對dataframe進行排序:

df = df.sort_values('Date')

而不是只留下帶有新日期的行:

df = df[df['Date'].dt.date != df['Date'].shift().dt.date]

您可以使用df.Date.dt.date從 datetime 列中提取日期,使用assign將其放入新列,然后僅基於該列使用drop_duplicates 最后,您可能希望刪除僅包含日期信息的新創建列。 在讀取的代碼中

df = (
    df.assign(new_date=lambda df:df.Date.dt.date)
   .drop_duplicates(subset=["new_date"])
   .drop(columns=["new_date"])
)

您可以簡單地使用duplicated

# pre-requisite
df['Date'] = pd.to_datetime(df['Date'])

df[~df['Date'].dt.date.duplicated()]

或者如果使用索引:

df[~df.index.to_series().dt.date.duplicated().values]

Output:

                 Date  price
0 2022-01-01 19:20:00    100
2 2022-01-02 19:31:00    102

暫無
暫無

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

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