Python Pandas - Dataframe专栏 - 将'2015/2016'格式的FY转换为'15/16'

Sco*_*tEU 1 python dataframe pandas

我的数据框中有一列(称为'FY'),其格式为财务年度值:2015/20162016/2017.

我想转换整个列,所以它说15/1616/17等等.

我假设你只是从字符串中获取第3,第4和第5个字符,以及第8和第9个字符,但是还没有得到如何做到这一点的线索.

谁能帮助我?谢谢.

Dar*_*nus 5

给定一个字符串,date = "2015/2016"您可以执行以下操作来获取15/16:

  1. 使用left, right = date.split('/')捕捉到两个不同的日期
  2. 从字符串中删除所有但最后2个字符:

    new_left = left[-2:]
    new_right = right[-2:]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将新字符串加入到一个 new_date = new_left+'/'+new_right

编辑:基于其他答案,直接与数据框一起工作的单线解决方案:

df['new'] = df['fy'].str.split('/')[0][-2:] +'/'+ df['fy'].str.split('/')[1][-2:]
Run Code Online (Sandbox Code Playgroud)

这是一种更通用的方法,因为它适用于不同长度的字符串,只获取最后2个字符,防止错误索引的错误,并防止您对它们进行硬编码(即使您的日期可能总是有4个字符加上'/',至少在未来8,000年内)