python - Football DataFrame - 从日期开始设置赛季
问题描述
这应该是一个简单的任务,但我无法弄清楚!
我有一个包含英超联赛足球数据的数据框。我要做的就是添加一个季节列并使用日期来设置季节,例如日期 = 2021-08-13,季节 = 2021。
但尽我所能 - 不能让它发挥作用。我该怎么做呢?最后一次尝试:
def get_season(row):
if (row['Date'] > pd.to_datetime("01/08/2021")):
season = "2021"
prem_data_new['Season'] = prem_data_new.apply(lambda row: get_season(row),axis = 1)
prem_data_new
解决方案
- 检查 prem_data_new['Date'] 类型。
- 如果是日期时间,请使用类似这样的东西
prem_data_new['Season'] = prem_data_new['Date'].year
- 如果不试试
prem_data_new['Date'] = pd.to_datetime(prem_data_new['Date'], errors='coerce')
然后到达第 2 点。
要获得季节,您可以尝试以下功能:
def func(ser):
lst = []
for i in range(len(ser)):
if ser[i].month < 8:
lst.append(ser[i].year)
else:
lst.append(ser[i].year + 1)
return lst
prem_data_new['Season'] = func(prem_data_new['Date'])
或者
prem_data_new['Season'] = [x.year if x.month < 8 else x.year + 1 for x in prem_data_new['Date']]
推荐阅读
- ios - 如何在到期前正确更新 Xcode 托管配置文件?
- python - 让机器人在 Python 中同时执行一组动作(使用 selenium)
- java - 如何使用多个排序匹配进行排序?
- python - 在某个值之后划分列表或数据框
- amazon-web-services - 重命名用户和跨账户策略行为
- javascript - UnhandledPromiseRejectionWarning:错误:协议错误(Page.navigate):当我传递有效 URL 时无法导航到无效 URL
- azure-table-storage - 我在哪里可以找到存储表功能的实际实现?
- wordpress - 在域的子目录下托管两个不同的应用程序
- css - 减小屏幕尺寸时我的列重叠
- php - Laravel - 基于模型属性的 hasOne 关系