【问题标题】:Python datetime delta formatPython 日期时间增量格式
【发布时间】:2018-07-25 01:48:50
【问题描述】:

我正在尝试在我的数据框中查找 30 天或更早的记录。我几乎一切正常,但我需要更正 Age 列的格式。程序中的大部分内容都是我在堆栈溢出时发现的,但我不知道如何更改返回的增量格式。

import pandas as pd
import datetime as dt

file_name = '/Aging_SRs.xls'
sheet = 'All'

df = pd.read_excel(io=file_name, sheet_name=sheet)

df.rename(columns={'SR Create Date': 'Create_Date', 'SR Number': 'SR'}, inplace=True)

tday = dt.date.today()
tdelta = dt.timedelta(days=30)
aged = tday - tdelta

df = df.loc[df.Create_Date <= aged, :]

# Sets the SR as the index.
df = df.set_index('SR', drop = True)

# Created the Age column.
df.insert(2, 'Age', 0)

# Calculates the days between the Create Date and Today.
df['Age'] = df['Create_Date'].subtract(tday)

上面最后一行的计算给了我结果,但它看起来像-197 days +09:39:12,我需要它只是一个正数197。我还尝试使用 python、pandas 和 datetime 关键字进行搜索。

df.rename(columns={'Create_Date': 'SR Create Date'}, inplace=True)

writer = pd.ExcelWriter('output_test.xlsx')
df.to_excel(writer)
writer.save()

【问题讨论】:

  • 你试过在前面放一个-吗?

标签: python python-3.x pandas datetime formatting


【解决方案1】:

我看不到您的示例数据,但 IIUC 和您只是想获得 timedelta 天数的绝对值,这应该可行:

df['Age'] =  abs(df['Create_Date'].subtract(tday)).dt.days)

解释

给定一个带有 timedelta 列的数据框:

>>> df
                 delta
0  26523 days 01:57:59
1 -1601 days +01:57:59

您可以使用dt.days 将天数提取为int

>>> df['delta']dt.days
0    26523
1    -1601
Name: delta, dtype: int64

然后,您需要做的就是将其包装在对 abs 的调用中,以获取该 int 的绝对值:

>>> abs(df.delta.dt.days)
0    26523
1     1601
Name: delta, dtype: int64

【讨论】:

  • 不仅感谢您的解决方案,还感谢您的解释。正是我需要的。
【解决方案2】:

这是我为基本相同的问题解决的问题。

# create timestamp for today, normalize to 00:00:00
today = pd.to_datetime('today', ).normalize()
# match timezone with datetimes in df so subtraction works
today = today.tz_localize(df['posted'].dt.tz)
# create 'age' column for days old
df['age'] = (today - df['posted']).dt.days

与上面的答案几乎相同,但没有调用abs()

【讨论】:

    猜你喜欢
    • 2020-01-09
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2012-03-27
    • 2013-07-09
    相关资源
    最近更新 更多