【问题标题】:How to separate Quarter and year data如何区分季度和年度数据
【发布时间】:2019-12-06 08:29:06
【问题描述】:

需要将季度和年份分成不同的列

df.head()

Period
Q1/2012
Q2/2012
Q3/2012
Q4/2012
Q1/2013

希望列显示为:

Period   Year
Q1       2012 
Q2       2012
Q3       2012
Q4       2012
Q1       2013

【问题讨论】:

  • 用 str.split 检查

标签: pandas numpy jupyter-notebook


【解决方案1】:

使用Series.str.split:

df[['Period','Year']] = df['Period'].str.split('/', expand=True)
print (df)
  Period  Year
0     Q1  2012
1     Q2  2012
2     Q3  2012
3     Q4  2012
4     Q1  2013

【讨论】:

    【解决方案2】:

    在单行中使用df.assignstr.split 来做

    df = pd.DataFrame({"data":["Q1/2018","Q1/2018","Q1/2018"]})
    
    final_df = df.assign(Period=lambda x :x['data'].str.split("/").str[0],
                         Year = lambda x :x['data'].str.split("/").str[1])
    print(final_df)
    
          data Period  Year
    0  Q1/2018     Q1  2018
    1  Q1/2018     Q1  2018
    2  Q1/2018     Q1  2018
    
    

    【讨论】:

      【解决方案3】:
      import pandas as pd
      import numpy as np
      
      df
          Period
      0   Q1/2012
      1   Q2/2012
      2   Q3/2012
      3   Q4/2012
      4   Q1/2013
      
      df['Year'] = df['Period'].str.extract(r'(\w{4})', expand=False)
      df['Period'] = df['Period'].str.extract(r'(.\d{1})',expand=False)
      
      df
          Period  Year
      0   Q1      2012
      1   Q2      2012
      2   Q3      2012
      3   Q4      2012
      4   Q1      2013
      

      【讨论】:

        猜你喜欢
        • 2018-12-20
        • 2020-07-16
        • 2022-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 2013-12-02
        • 2021-03-08
        相关资源
        最近更新 更多