gpt4 book ai didi

python - calendar.monthrange() - ValueError : The truth value of a Series is ambiguous. 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

转载 作者:行者123 更新时间:2023-12-01 00:03:14 25 4
gpt4 key购买 nike

我有一个带有日期字段的 pandas 数据框。我正在尝试使用此字段来计算该日期所在月份的天数。但是,当我使用下面的代码时,出现以下错误:

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

from calendar import monthrange
df['NumDays'] = monthrange(df['Date_Field'].map(lambda x: x.year),df['Date_Field'].map(lambda x: x.month))[1]

我通过在 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]

生成的“年”列具有正确的年份,“月”列具有正确的月份,但是当我尝试在 Monthrange() 中使用它们时,我得到了相同的 ValueError。

如有任何指导,我们将不胜感激。

谢谢。

最佳答案

使用 DatetimeIndex 的 days_in_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

关于python - calendar.monthrange() - ValueError : The truth value of a Series is ambiguous. 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60177346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com