【问题标题】:How to convert to Pandas datetime to date to integer in pandas?如何将 Pandas 日期时间转换为 Pandas 中的整数?
【发布时间】:2018-09-27 11:50:23
【问题描述】:

如何将pandas 转换为如下所示的日期格式:

2018-08-27 00:00:00.000
2018-08-26 00:00:00.000
2018-08-24 00:00:00.000
2018-08-24 00:00:00.000
2018-08-24 00:00:00.000
2018-08-24 00:00:00.000
2018-08-23 00:00:00.000
2018-08-23 00:00:00.000
2018-08-20 00:00:00.000
2018-08-20 00:00:00.000

以整数格式计算自 2010 年 1 月 1 日以来的天数?

【问题讨论】:

    标签: pandas datetime dataframe integer days


    【解决方案1】:

    Series.sub 从列中减去日期,Series.dt.days 将 timedeltas 转换为天数:

    df['days'] = pd.to_datetime(df['date']).sub(pd.Timestamp('2010-01-01')).dt.days
    print (df)
                          date  days
    0  2018-08-27 00:00:00.000  3160
    1  2018-08-26 00:00:00.000  3159
    2  2018-08-24 00:00:00.000  3157
    3  2018-08-24 00:00:00.000  3157
    4  2018-08-24 00:00:00.000  3157
    5  2018-08-24 00:00:00.000  3157
    6  2018-08-23 00:00:00.000  3156
    7  2018-08-23 00:00:00.000  3156
    8  2018-08-20 00:00:00.000  3153
    9  2018-08-20 00:00:00.000  3153
    

    【讨论】:

      【解决方案2】:

      您可以像 jezrael 在他非常直接的回答中提到的那样在 pandas Timestamp 列上简单地应用 sub 。

      如果你想一个接一个地做同样的事情,你可以在地图的帮助下这样做

      base_date = pd.Timestamp('2010-01-01 00:00:00')
      
      df['days'] = df['date'].map(lambda date : (pd.Timestamp(date) - base_date).days )
      

      【讨论】:

      • 您忘记转换日期列。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2016-07-24
      • 2016-01-27
      相关资源
      最近更新 更多