【发布时间】:2020-07-26 09:03:46
【问题描述】:
我在下面有一个函数来查找一个月中有多少天
import calendar
calendar.monthrange(2012,2)[1]
这个返回 29
我的问题是,现在我有一个包含 100+(年、月)的数据框
2012,2
2012,3
2013,1
2016,7
2015,4
...
我已将数据框定义为 df['Year'] 和 df['Month'],当我将这两个插入函数时
import calendar
calendar.monthrange(df['Year'],df['Month'])[1]
它告诉我 ValueError: the truth value of a Series 是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
如何将此函数与我的数据框一起使用,或者我必须在函数中手动输入这些输入?
谢谢
【问题讨论】:
-
你也可以直接使用pandas函数:
pd.to_datetime(df[['Year','Month']].astype(str).agg('-'.join,1),format="%Y-%m").dt.daysinmonth -
谢谢,这也有效。请问“申请”和你的方法有什么区别?它只是让我感到困惑 dt.daysinmonth 和 calendar.monthrange 都是内置函数,但以不同的格式工作。那么我怎么知道该使用哪一个呢?