【问题标题】:Python: take unique dates in dataframePython:在数据框中获取唯一日期
【发布时间】:2022-01-20 19:48:35
【问题描述】:
我有一个如下所示的数据框:
price
Date
2022-01-01 19:20:00 100
2022-01-01 19:27:00 100
2022-01-02 19:31:00 102
我希望数据框只有唯一的日期:
price
Date
2022-01-01 19:20:00 100
2022-01-02 19:31:00 102
我怎样才能做到这一点?
【问题讨论】:
标签:
python
pandas
dataframe
datetime
timestamp
【解决方案1】:
你可以简单地使用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]
输出:
Date price
0 2022-01-01 19:20:00 100
2 2022-01-02 19:31:00 102
【解决方案2】:
您可以使用df.Date.dt.date 从日期时间列中提取日期,使用assign 将其放入新列中,然后仅基于该列使用drop_duplicates。最后,您可能希望删除仅包含日期信息的新创建列。在读取的代码中
df = (
df.assign(new_date=lambda df:df.Date.dt.date)
.drop_duplicates(subset=["new_date"])
.drop(columns=["new_date"])
)