【问题标题】: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
【问题讨论】:
标签:
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.assign 和str.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