Python:在数据框中取唯一日期
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
我希望数据框只有唯一的日期:
price
Date
2022-01-01 19:20:00 100
2022-01-02 19:31:00 102
我怎样才能做到这一点?
您可以使用 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"])
)
您可以简单地使用 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
我有一个如下所示的数据框:
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
我怎样才能做到这一点?
您可以使用 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"])
)
您可以简单地使用 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