![](/img/trans.png)
[英]Why am I getting error 'Series' object has no attribute 'days' when trying to get number of days between two dates?
[英]why the function networkdays get the error "'Series' object has no attribute 'days'
下面是我的示例 dataframe,我想使用 .networkdays 來計算我的 df 列中的工作日,但出現如下問題,有人可以幫助解決這個問題嗎?
#import lib
import pandas as pd
from workdays import workday, networkdays
#sample dict to create df
dict1 = {
'startdate' : ['2022-01-17','2022-02-28'],
'enddate' : ['2022-01-17','2022-03-15']
}
#convert to datetime format
df['startdate'] = df['startdate'].astype('datetime64')
df['enddate'] = df['enddate'].astype('datetime64')
#create new column count and apply function
df['count']=df.apply(networkdays(df['startdate'],df['enddate']))
#getting error :
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_20080/333906513.py in <module>
----> 1 df['count']=df.apply(networkdays(df['startdate'],df['enddate']))
C:\ProgramData\Anaconda3\lib\site-packages\workdays.py in networkdays(start_date, end_date, holidays)
10
11 def networkdays(start_date, end_date, holidays=[]):
---> 12 delta_days = (end_date - start_date).days + 1
13 full_weeks, extra_days = divmod(delta_days, 7)
14 # num_workdays = how many days/week you work * total # of weeks
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
5485 ):
5486 return self[name]
-> 5487 return object.__getattribute__(self, name)
5488
5489 def __setattr__(self, name: str, value) -> None:
AttributeError: 'Series' object has no attribute 'days'
df['startdate']
是一系列 object,它包含不止一條數據。
>> df['enddate'] # <class 'pandas.core.series.Series'>
0 2022-01-17
1 2022-03-15
如果必須將lambda
應用於df.apply
中的所有行,則應將 lambda 傳遞給 df.apply lambda
的參數是數據行。
df = pd.DataFrame(dict1)
df['startdate'] = df['startdate'].astype('datetime64')
df['enddate'] = df['enddate'].astype('datetime64')
df['count']=df.apply(lambda x: networkdays(x['startdate'], x['enddate']), axis=1)
print(df)
# startdate enddate count
# 0 2022-01-17 2022-01-17 1
# 1 2022-02-28 2022-03-15 12
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.