[英]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 個觀察值
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.