【问题标题】:Find difference between two dates ignoring the year in python3在python3中查找忽略年份的两个日期之间的差异
【发布时间】:2019-01-18 08:42:06
【问题描述】:

我试图找出忽略年份的两个日期之间的差异。因此,假设我想找出 2014-01-02 和 2019-01-01 之间的区别,答案应该是 1,但这样做有困难。 应该是一年中的第几天,减去月份中的第几天 不会工作

下面是我使用的代码,但它没有给我想要的结果,因为它也考虑到了年份。

data12['Dist_from_NewYear'] = data12['only_date'].map(lambda x: x.date() - public_holidays['Date'][0].date())

data12['Dist_from_NewYear']

0      -1456 days
1      -1455 days
2      -1454 days
3      -1453 days
4      -1452 days
5      -1451 days
6      -1450 days
7      -1449 days
8      -1448 days
9      -1448 days
10     -1448 days
11     -1446 days
12     -1445 days

【问题讨论】:

  • 那么,忽略年份,从 2 月 27 日到 3 月 1 日之间有多少天?

标签: pandas datetime python-3.6


【解决方案1】:

使用dt.dayofyear 获取一年中的第几天进行计算:

In[131]:
df = pd.DataFrame({'a':[pd.to_datetime('2014-01-02', dayfirst=False)], 'b':[pd.to_datetime('2019-01-01', dayfirst=False)]})
df['diff'] = df['a'].dt.dayofyear - df['b'].dt.dayofyear
df

Out[131]: 
           a          b  diff
0 2014-01-02 2019-01-01     1

【讨论】:

    【解决方案2】:

    你可以这样做

    import pandas as pd
    
    df = pd.DataFrame({"date": pd.date_range(start='2019-01-01', periods=10)})
    
    print(df["date"])
    print(df["date"].dt.day[3] - df["date"].dt.day[2])
    

    如果您遇到任何问题,请告诉我。

    【讨论】:

    • 这行不通,OP 想要一年中的第几天,你要减去一个月中的哪一天
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2014-04-07
    • 2022-10-02
    相关资源
    最近更新 更多