【发布时间】:2020-08-28 16:22:59
【问题描述】:
我在过滤 pandas 数据框时遇到问题 - 我想过滤“日期”列中的所有日期以仅返回上个月的日期,但 python 混淆了日期和月份并返回错误的答案。你能告诉我如何解决吗谢谢
import pandas as pd
import numpy as np
import datetime as dt
df = pd.DataFrame(pd.read_csv("Dates.csv"))
tday = dt.date.today()
tdelta = dt.timedelta(days=-30)
dt = tday + tdelta
dt = np.datetime64(dt)
print(dt)
df['Date'] = pd.to_datetime(df['Date'])
df = df.loc[df['Date'] >= dt]
print(df)
Dates.csvdf 是:
DF =
Met By Date
0 David 06/07/2020
1 Philip 22/06/2020
2 Richard 02/04/2020
3 Richard 09/03/2020
4 Richard 17/02/2020
5 Philip 12/02/2020
6 Philip 29/01/2020
7 Jane 20/01/2020
8 Jane 13/01/2020
9 Richard 10/01/2020
10 Philip 06/01/2020
更新:由 VALDI 解决 - read_csv 上必须包含 dayfirst = True
import pandas as pd
df = pd.read_csv("Dates.csv", parse_dates=[1], dayfirst = True)
df = df[df['Date'] > pd.Timestamp.today() - pd.Timedelta('30D')]
print(df)
【问题讨论】:
-
这能回答你的问题吗? How can I sort DataFrame by date in Python?
标签: python pandas dataframe date