簡體   English   中英

將熊貓日期時間差值從天轉換為年

[英]Convert pandas datetime time difference values from days to years

我有一個通過從csv文件導入日期值創建的datetime值(事件的日期)。 然后,我嘗試通過從出生日期的日期時間中減去事件的日期時間來計算該人的年齡。 這幾天就給了我答案-但幾年后我希望得到它。

要從excel csv文件導入數據,我使用了以下方法:

Patients = pandas.read_csv("Patients_SN.csv", parse_dates=True) 
Patients['dateofbirth'] = pandas.to_datetime(Patients['dateofbirth'], format='%d/%m/%Y')

然后,我將患者數據與另一個名為“ Transitions3”的(事件)數據集合並,以便每個事件在“ dateofbirth”列中都有該人的出生日期。

我已經可以使用以下方法獲得一個數字(以天為單位),該數字代表事件發生時的人的年齡:

Transitions3['AgeAtFirstEvent']=(Transitions3['FirstEventDate']-Transitions3['dateofbirth'])

正如我所說-這幾天就給了我答案

1782 days 00:00:00.000000000
  • 但是我想要幾年(和幾年的分數,例如45.5年)。

我嘗試使用以下代碼將其更改為年

Transitions3['AgeAtFirstDial']= pandas.to_datetime(Transitions3['AgeAtFirstDial'], unit="y")

但我收到此錯誤:ValueError:無法轉換y

也嘗試過:

Transitions3['Age1stDial']=Transitions3['AgeAtFirstDial'].total_years()

但我得到這個:

Traceback (most recent call last):

  File "<ipython-input-22-3dc3b7338471>", line 1, in <module>
    Transitions3['Age1stDial']=Transitions3['AgeAtFirstDial'].total_years()

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 4376, in __getattr__
    return object.__getattribute__(self, name)

AttributeError: 'Series' object has no attribute 'total_years'

有什么建議么? 提前致謝。

我認為減法的輸出是一個timedelta系列。 在這種情況下,可以使用以下方法進行轉換。

Transitions3['AgeAtFirstEvent'] / np.timedelta64(1, 'Y')

您可以在此處了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM