首页 > 解决方案 > 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

标签: pythonpandas

解决方案


  1. 检查 prem_data_new['Date'] 类型。
  2. 如果是日期时间,请使用类似这样的东西
    prem_data_new['Season'] = prem_data_new['Date'].year
  1. 如果不试试
    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']]

推荐阅读