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

标签 python pandas dataframe

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

我想转换整个列,所以它显示 15/1616/17等等。

我假设您不知何故只从字符串中取出第 3、4 和 5 个字符,以及第 8 和第 9 个字符,但不知道如何去做。

谁能帮帮我?谢谢。

最佳答案

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

  1. 使用 left, right = date.split('/') 捕获两个单独的日期
  2. 删除字符串中除最后 2 个字符外的所有字符:

    new_left = left[-2:]
    new_right = right[-2:]
    
  3. 使用 new_date = new_left+'/'+new_right 将新字符串合并为一个字符串

编辑:基于其他答案直接使用数据框的单行解决方案:

df['new'] = df['fy'].str.split('/')[0][-2:] +'/'+ df['fy'].str.split('/')[1][-2:]

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

关于Python Pandas - Dataframe 列 - 将格式为 '2015/2016' 的 FY 转换为 '15/16',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45198564/

相关文章:

python - 为什么纹理索引 31 在 Moderngl 中被覆盖?

python - 将时间列表与时间范围列表相交的最佳方法

python - Pandas:删除所有列中的所有 NaN 值

R - 条件递增

python - 计算 pandas 中不连续的行索引集的列值差异

python - 在单元测试中卡住数据库时间(django 和 sqlite)

python - 使用python从给定的音频文件中检测静音索引

python - 如何对大型数据集进行多线程大量 pandas 数据帧选择调用

python - 取消展平数据框中的行

r - 如何根据多列字符串中的字符复制行