Excel return 负数中两个日期之间的差异
Delta between two dates in Excel return negative number
我有一个脚本 return 今天的日期和 Excel 文件中的日期之间的天数差异。
出于某种原因,对于单编号的日期,我得到一个负数。
例如:
Date : num days diffrence from today
4/7/2019 : -72 (wrong)
5/7/2019 : -42 (wrong)
20/8/2019 : 63 (correct)
30/6/2019 : 12 (correct)
发布此问题当天的结果为真(17/6/2019)
我检查了 Excel 文件中剩余的 100 个日期,这种行为只发生在单编号日期。例如:5/7/2019(2019 年 7 月 5 日)或 3/10/2019(2019 年 10 月 3 日)。
这是我的代码:
import pandas as pd
import datetime as dt
file_name = pd.read_excel (r'Changes log.xlsx')
df = pd.DataFrame(file_name, columns= ['Due Date'])
today = pd.Timestamp.today()
df['Due Date'] = pd.to_datetime(df['Due Date'])
delta = (df['Due Date'] - today).dt.days
print(delta)
注意:df['Due Date
] 包含 Excel 文件中的日期。由 %d/%m/%Y
格式化
任何帮助都会很棒
使用参数dayfirst=True
:
df = pd.read_excel('Changes log.xlsx')
df.columns = ['Due Date']
today = pd.Timestamp.today()
df['Due Date'] = pd.to_datetime(df['Due Date'], dayfirst=True)
delta = (df['Due Date'] - today).dt.days
print(delta)
数据示例:
df = pd.DataFrame({'Date': ['4/7/2019', '5/7/2019', '20/8/2019', '30/6/2019']})
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
delta = (df['Date'] - pd.Timestamp.today()).dt.days
输出
0 16
1 17
2 63
3 12
Name: Date, dtype: int64
您可以使用 to_datetime 方法的 format
参数。
df['Date'] = pd.to_datetime(df['Date'], format="%d/%m/%Y”)
完整示例:
df = pd.DataFrame({'Date': ['4/7/2019', '5/7/2019', '20/8/2019', '30/6/2019']})
df['Date'] = pd.to_datetime(df['Date'], format="%d/%m/%Y")
delta = (df['Date'] - pd.Timestamp.today()).dt.days
print(delta)
输出:
0 16
1 17
2 63
3 12
Name: Date, dtype: int64
我有一个脚本 return 今天的日期和 Excel 文件中的日期之间的天数差异。
出于某种原因,对于单编号的日期,我得到一个负数。
例如:
Date : num days diffrence from today
4/7/2019 : -72 (wrong)
5/7/2019 : -42 (wrong)
20/8/2019 : 63 (correct)
30/6/2019 : 12 (correct)
发布此问题当天的结果为真(17/6/2019)
我检查了 Excel 文件中剩余的 100 个日期,这种行为只发生在单编号日期。例如:5/7/2019(2019 年 7 月 5 日)或 3/10/2019(2019 年 10 月 3 日)。
这是我的代码:
import pandas as pd
import datetime as dt
file_name = pd.read_excel (r'Changes log.xlsx')
df = pd.DataFrame(file_name, columns= ['Due Date'])
today = pd.Timestamp.today()
df['Due Date'] = pd.to_datetime(df['Due Date'])
delta = (df['Due Date'] - today).dt.days
print(delta)
注意:df['Due Date
] 包含 Excel 文件中的日期。由 %d/%m/%Y
任何帮助都会很棒
使用参数dayfirst=True
:
df = pd.read_excel('Changes log.xlsx')
df.columns = ['Due Date']
today = pd.Timestamp.today()
df['Due Date'] = pd.to_datetime(df['Due Date'], dayfirst=True)
delta = (df['Due Date'] - today).dt.days
print(delta)
数据示例:
df = pd.DataFrame({'Date': ['4/7/2019', '5/7/2019', '20/8/2019', '30/6/2019']})
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
delta = (df['Date'] - pd.Timestamp.today()).dt.days
输出
0 16
1 17
2 63
3 12
Name: Date, dtype: int64
您可以使用 to_datetime 方法的 format
参数。
df['Date'] = pd.to_datetime(df['Date'], format="%d/%m/%Y”)
完整示例:
df = pd.DataFrame({'Date': ['4/7/2019', '5/7/2019', '20/8/2019', '30/6/2019']})
df['Date'] = pd.to_datetime(df['Date'], format="%d/%m/%Y")
delta = (df['Date'] - pd.Timestamp.today()).dt.days
print(delta)
输出:
0 16
1 17
2 63
3 12
Name: Date, dtype: int64