Pandas – 两个日期之间的月数

Pandas – 两个日期之间的月数

在这篇文章中,我们将使用Python在pandas中找到两个日期之间的月数。

示例 1:

我们将采取一个数据框架,并有两列日期,我们希望得到它们之间的差异。使用df.dates1-df.dates2来找到两个日期之间的差值,然后将结果转换成月的形式。转换为’int’数据类型,否则结果将是浮动的形式。

# Importing required libraries
import pandas as pd
import numpy as np
import datetime
 
# Making a dataframe which will have two
# columns two store different dates
df = pd.DataFrame({'dates1': np.array(
  [datetime.datetime(2000, 10, 19), datetime.datetime(2021, 1, 8)]),
                   'dates2': np.array(
                     [datetime.datetime(1998, 6, 20),
                      datetime.datetime(2012, 10, 18)])})
 
# Used to convert the difference in terms of months
df['nb_months'] = ((df.dates1 - df.dates2)/np.timedelta64(1, 'M'))
df['nb_months'] = df['nb_months'].astype(int)
print(df)

输出:

Pandas - 两个日期之间的月数

示例 2:

我们也可以通过对代码稍作修改来获得两个日期之间的天数。它显示如下。

# Importing required libraries
import pandas as pd
import numpy as np
import datetime
 
# Making a dataframe which will have
# two columns two store different dates
df = pd.DataFrame({'dates1': np.array(
  [datetime.datetime(2000, 10, 19), datetime.datetime(2021, 1, 8)]),
                   'dates2': np.array(
                     [datetime.datetime(1998, 6, 20),
                      datetime.datetime(2012, 10, 18)])})
 
# Used to convert the difference in terms of days
df['Number_of_days'] = ((df.dates1 - df.dates2)/np.timedelta64(1, 'D'))
df['Number_of_days'] = df['Number_of_days'].astype(int)
print(df)

输出:

Pandas - 两个日期之间的月数

示例 3:

以类似的方式,我们也可以得到两个日期之间以周为单位的差异。

# Importing required libraries
import pandas as pd
import numpy as np
import datetime
 
# Making a dataframe which will
# have two columns two store different dates
df= pd.DataFrame({'dates1': np.array(
  [datetime.datetime(2000, 10, 19), datetime.datetime(2021, 1, 8)]),
                   'dates2': np.array(
                     [datetime.datetime(1998, 6, 20),
                      datetime.datetime(2012, 10, 18)] )})
 
# Used to convert the difference in terms of weeks
df['Number_of_weeks'] = ((df.dates1 - df.dates2)/np.timedelta64(1, 'W'))
df['Number_of_weeks'] = df['Number_of_weeks'].astype(int)
print(df)

输出:

Pandas - 两个日期之间的月数

示例 4:

以类似的方式,我们也可以得到两个日期在年份上的差异。

# Importing required libraries
import pandas as pd
import numpy as np
import datetime
 
# Making a dataframe which will
# have two columns two store different dates
df = pd.DataFrame({'dates1': np.array(
  [datetime.datetime(2000, 10, 19), datetime.datetime(2021, 1, 8)]),
                   'dates2': np.array(
                     [datetime.datetime(1998, 6, 20),
                      datetime.datetime(2012, 10, 18)])})
 
# Used to convert the difference in terms of years
df['Number_of_years'] = ((df.dates1 - df.dates2)/np.timedelta64(1, 'Y'))
df['Number_of_years'] = df['Number_of_years'].astype(int)
print(df)

输出:

Pandas - 两个日期之间的月数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程