python - Python Dataframe:获取上个月存在的工作日数?
问题描述
我有df
与专栏day_name
。我正在尝试获取上个月存在的 week_days 数?
我正在尝试获取上个月存在的 week_days 数。
例如:有4 Fridays
和5 Thrusdays
在四月
df
day_name
0 Friday
1 Sunday
2 Thursday
3 Wednesday
4 Monday
根据python一天:
import calendar
year = 2020
month = 4
day_to_count = calendar.WEDNESDAY
matrix = calendar.monthcalendar(year,month)
num_days = sum(1 for x in matrix if x[day_to_count] != 0)
我如何在数据框或任何建议中使用它?
预期产出
day_name last_months_count
0 Friday 4
1 Sunday 4
2 Thursday 5
3 Wednesday 5
4 Monday 4
解决方案
上个月:
year, month = 2020, 4
start,end = f'{year}/{month}/1', f'{year}/{month+1}/1'
# we exclude the last day
# which is first day of next month
last_month = pd.date_range(start,end,freq='D')[:-1]
df['last_month_count'] = df['day_name'].map(last_month.day_name().value_counts())
输出:
day_name last_month_count
0 Friday 4
1 Sunday 4
2 Thursday 5
3 Wednesday 5
4 Monday 4
奖励:以编程方式提取上个月:
from datetime import datetime
now = datetime.now()
year, month = now.year, now.month
# first month of the year
if month == 1:
year, month = year-1, 12
推荐阅读
- postgresql - 气流 postgresql 后端:(psycopg2.OperationalError)致命:用户“气流”的身份验证失败
- arrays - 从结构填充 UITableview
- python - 如何在 python pandas 中找到最后一个单元格的索引?
- python - 重新启动游戏和用户输入无效时,回合#计数器不会重置
- list - 列表与矩阵:哪个更快?
- arduino - 从 Arduino 上的串行通信中读取特定线路的有效方法
- microsoft-graph-api - 按日期过滤电子邮件添加到邮箱,而不是实际的电子邮件接收日期
- go - 如何根据 Go 中的发行链验证证书?
- php - 表单命名参数
- python - Python:读取具有数百万条记录的没有默认分隔符的文件并将其放置在数据框(熊猫)中时的效率?