【问题标题】:Add new column with specific increasing of a quarter using python使用python添加特定增加四分之一的新列
【发布时间】:2021-06-04 00:43:05
【问题描述】:

我有一个数据框 df,它有一个季度列,我想在它旁边添加一个额外增加的季度列(增加 2)

数据

id  date    
a   Q1 2022 
a   Q1 2022 
a   Q1 2022 
a   Q1 2022 
b   Q1 2022 
b   Q1 2022 

想要的

id  date      new 
a   Q1 2022   Q3 2022
a   Q1 2022   Q3 2022
a   Q1 2022   Q3 2022
a   Q1 2022   Q3 2022
b   Q1 2022   Q3 2022
b   Q1 2022   Q3 2022

在做

df['new'] = df.index + 2

但是,这并不是在整个列中始终添加 2 我仍在进行故障排除,感谢任何建议

【问题讨论】:

  • 考虑如果日期列包含Q4 2022,在这种情况下会输出什么?
  • 未来始终是 2 个季度——将是 2023 年第一季度

标签: python pandas numpy


【解决方案1】:

重新格式化date 中的字符串,使生成的日期格式为YearQuarter,以便可以将其解析为PeriodIndex,现在将2 添加到此索引并添加strftime 以转换回原始格式

s = df['date'].str.replace(r'(\S+) (\S+)', r'\2\1')
df['new'] = (pd.PeriodIndex(s, freq='Q') + 2).strftime('Q%q %Y')

  id     date      new
0  a  Q1 2022  Q3 2022
1  a  Q1 2022  Q3 2022
2  a  Q1 2022  Q3 2022
3  a  Q1 2022  Q3 2022
4  b  Q1 2022  Q3 2022
5  b  Q1 2022  Q3 2022

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    相关资源
    最近更新 更多