np_arr = np.array([
[2818, 'Daniel', 'within an hour', '2008-09-24', 4.89, 2.86, 't', 't'],
[5820, 'Sam', 'within an week', '2020-10-24', 4.89, 2.86, 't', 't'],
[5420, 'Franc', 'within an second', '2019-11-24', 4.89, 2.86, 't', 't'],
[5520, 'Sandra', 'within an second', '2019-01-24', 4.89, 2.86, 't', 't']
])
host_since = np_arr[:,3].astype(np.datetime64)
filter = (datetime.now() - host_since.astype('datetime64[M]')).years < 2
filter
如何只獲取不到兩年的日期?True/False 陣列應如下所示:
array([[False, True, True, False])
uj5u.com熱心網友回復:
看起來您將年份定義為 12 個月。然后嘗試:
month_diff = np.array(datetime.now(), 'datetime64[M]') - host_since.astype('datetime64[M]')
mask = month_diff < np.array(24, 'timedelta64[M]')
輸出:
array([False, True, True, False])
uj5u.com熱心網友回復:
一種方法是計算天數差異并找到小于2 * 365天數的值:
host_since = np_arr[:, 3].astype(str).astype(np.datetime64)
delta = np.datetime64('today') - host_since
print(delta < np.timedelta64(2 * 365, 'D'))
輸出
[False True True False]
uj5u.com熱心網友回復:
當前時間和持續時間也應采用np.datetime64格式
np.datetime64(datetime.now())np.timedelta64(2 * 365, 'D')
np_arr = np.array([
[2818, 'Daniel', 'within an hour', '2008-09-24', 4.89, 2.86, 't', 't'],
[5820, 'Sam', 'within an week', '2020-10-24', 4.89, 2.86, 't', 't'],
[5420, 'Franc', 'within an second', '2019-11-24', 4.89, 2.86, 't', 't'],
[5520, 'Sandra', 'within an second', '2019-01-24', 4.89, 2.86, 't', 't']
])
host_since = np_arr[:, 3].astype(np.datetime64)
result = (np.datetime64(datetime.now()) - host_since) < np.timedelta64(2 * 365, 'D')
print(result) # [False True True False]
uj5u.com熱心網友回復:
您可以使用 Python 的 datetime 模塊:
# Timedelta function demonstration
from datetime import datetime, timedelta
# Using current time
now = datetime.now()
# 730 is two years
twoYearsAgo = now - timedelta(days = 730)
print('2 years ago:', str(twoYearsAgo))
注意:這不考慮閏年
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/341062.html
上一篇:根據多列值創建一個新列
