首先是确定变量
例如 数据中的日期“2021-06-01”,在pandas中显示为object对象。
他有可能是 str,也有可能是datetime对象,也有可能是time对象,为了方便起见,统一使用 pd.to_datetime(data['time'])
将其转化为datetime64对象。
日期计算
now = datetime.datetime.now()
# 周一至周五,取上周周五
if datetime.datetime.isoweekday(now) in [1, 2, 3, 4, 5]:
now = now - datetime.timedelta(days=datetime.datetime.isoweekday(now) + 1)
# 周六周天,取本周周五
elif datetime.datetime.isoweekday(now) in [6, 7]:
now = now - datetime.timedelta(days=datetime.datetime.isoweekday(now) - 5)
绘图方面
绘图时如果需要将图片x轴,变为自己想要的结果,而非作图时的数据。(例如一下情况):
loc, lable = plt.xticks() # 得到默认绘图的x轴下标位置
# loc 我将其理解lable的下标,而lable则是我们展示的x轴的数据
lable = [] # 最终要替换的位置数据
plt_date = plt_date.dt.date.sort_values()
nums = len(plt_date) // 10 # x轴日期等分为10个
for i, x in enumerate(plt_date):
if i % nums == 0:
locs.append(x.strftime('%Y-%m-%d'))
else:
locs.append("")
plt.xticks(loc, lable) # 更替x轴,loc, lable 需要长度一致。
# 在需要的位置放入你想输出的字符串。
#在不需要的位置设置空字符串即可。
这就是10等份之后的日期,比之前能看一点。