Python calendar.monthrange()-ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()

Python calendar.monthrange()-ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all(),python,pandas,Python,Pandas,我有一个带有日期字段的数据框。我试图用这个字段来计算该日期当月的天数。但是,当我使用下面的代码时,会出现以下错误: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all() 我通过在DF中创建两个单独的列来测试.year和.month是否有效 df['year'] = df['Date_Field'].map(lambda x: x.year) df['month'] = df['Date_Field'].map(lambda

我有一个带有日期字段的数据框。我试图用这个字段来计算该日期当月的天数。但是,当我使用下面的代码时,会出现以下错误:

ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()

我通过在DF中创建两个单独的列来测试.year和.month是否有效

df['year'] = df['Date_Field'].map(lambda x: x.year)
df['month'] = df['Date_Field'].map(lambda x: x.month)
df['NumDays'] = monthrange(df['year'], df['month'])[1]
结果“year”列具有正确的年份,“month”列具有正确的月份,但当我尝试在monthrange()中使用它们时,得到了相同的ValueError

任何指导都将不胜感激


谢谢。

使用DatetimeIndex的
days\u in\u month
属性:

df = pd.DataFrame({'date':pd.date_range('01/01/2019', periods=12, freq='MS')})
df['No of Days in this Month'] = df['date'].dt.days_in_month
df
输出:

         date  No of Days in this Month
0  2019-01-01                        31
1  2019-02-01                        28
2  2019-03-01                        31
3  2019-04-01                        30
4  2019-05-01                        31
5  2019-06-01                        30
6  2019-07-01                        31
7  2019-08-01                        31
8  2019-09-01                        30
9  2019-10-01                        31
10 2019-11-01                        30
11 2019-12-01                        31

可以是这样的:

# dt is referred to datetime
df['NumDays'] = df['Date_Field'].dt.days_in_month

这位五月球童,你只想要月日吗?Ie 1998年2月2日返回2,2010年3月17日返回17<代码>日期['date'].dt.天将起作用。看看熊猫的访问器。嘿,斯科特,谢谢你的回复。我要找的是特定月份的天数。所以,如果日期是2020年1月26日,我希望看到31。啊@caddie有一个属性Use,
df['date'].dt.days\u in\u month
# dt is referred to datetime
df['NumDays'] = df['Date_Field'].dt.days_in_month