我正在嘗試在串列中的所有日期中添加負數
def datediff(xdate):
return(xdate - timedelta(days=1))
data_ = [['tom', '2022-12-01'], ['nick', '2022-12-01'], ['juli', '2021-06-08']]
data_ = pd.DataFrame(data_, columns = ['Name', 'eventdate'])
pd.DataFrame(index=data_.eventdate, data=data_, columns=['eventdate']).apply(datediff)
但是,應該包含原始日期減 1 的 eventdate 都是 NaT。
uj5u.com熱心網友回復:
使用 apd.Timedelta在 a 中進行日期操作DataFrame。
In [47]: data_ = [['tom', '2022-12-01'], ['nick', '2022-12-01'], ['juli', '2021-06-08']]
...: data = pd.DataFrame(data_, columns = ['Name', 'eventdate'])
In [48]: data
Out[48]:
Name eventdate
0 tom 2022-12-01
1 nick 2022-12-01
2 juli 2021-06-08
# data.eventdate is a string so we convert it to a datetime before subtracting a timedelta
In [49]: data.eventdate = data.eventdate.astype('datetime64') - pd.Timedelta('1 day')
In [50]: data
Out[50]:
Name eventdate
0 tom 2022-11-30
1 nick 2022-11-30
2 juli 2021-06-07
您通常應該盡可能避免使用Dataframe.apply。請參閱此答案,了解為什么它可能會很慢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429428.html
