簡體   English   中英

Function 將天改為年

[英]Function to change Days to Years

我想創建一個 function 將天轉換為年。 在我的數據集中,我的客戶的年齡以天而不是年給出。 我沒有關於他們年齡的任何其他信息。 (無出生日期)

這是我嘗試過的解決方案之一:

def convert (age_in_days):
    Age = int[(age_in_days/365)]
    return Age
    convert (['age_in_days'])

然后調用 function

convert(data['age_in_days'])

我的 output 是:

[id
 1        31.041096
 2        83.038356
 3        44.024658
 4        65.021918
 5        53.041096
            ...    
 79849    70.013699
 79850    46.019178
 79851    68.041096
 79852    30.024658
 79853    54.027397
 Name: age_in_days, Length: 79853, dtype: float64]

如您所見,我總共有 79853 個觀察值

  1. 當我嘗試轉換為數據框時,我可以將 append 轉換為我的主數據集 pd.DataFrame(Age, columns = ['age']) 這就是我得到的:
            age
age_in_days NaN

僅此而已,我需要將計算出的年齡值添加到我的數據集中。

我不確定是否需要編寫單獨的 function 將天數轉換為年數。

我們可以直接在 pandas 中執行相同的操作

樣本輸入 DF

df = pd.DataFrame({
    'id':[11, 12],
    'age_in_day':[22643, 10262]
})

    id  age_in_day
0   11  22643
1   12  10262

兩種選擇

選項 1 - 代碼 - Pandas 方式

df['age_in_years'] = pd.to_timedelta(df.age_in_day, unit='D') / np.timedelta64(1,'Y')

Output

    id  age_in_day  age_in_years
0   11  22643       61.994428
1   12  10262       28.096402

選項 2 - 代碼 - 浮動 div

df['age_in_years'] = df['age_in_day'] / 365
df

Output

    id  age_in_day  age_in_years
0   11  22643       62.035616
1   12  10262       28.115068

其他選項

無論如何,如果我們有一個單獨的list/Series (從外部函數生成),我們想要添加到現有的age in years . 然后

系列

0    62.035616
1    28.115068
Name: age_in_day, dtype: float64

df['age_in_years'] = age_Series

列表

age_list=[62.035616438356165, 28.115068493150684]
df['age_in_years'] = age_list 

暫無
暫無

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

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