私は1つの列は次の形式の年と四半期の文字列が含まれているパンダのデータフレーム、持っている:変換文字列
2015Q1
を私の質問: 方法私はこれを2つのdatetime列に変換します.1つは年の列、もう1つは四半期です。
私は1つの列は次の形式の年と四半期の文字列が含まれているパンダのデータフレーム、持っている:変換文字列
2015Q1
を私の質問: 方法私はこれを2つのdatetime列に変換します.1つは年の列、もう1つは四半期です。
あなたは、split
を使用し、その後int
に列year
をキャストし、必要に応じて列q
にQ
を追加することができます。
df = pd.DataFrame({'date':['2015Q1','2015Q2']})
print (df)
date
0 2015Q1
1 2015Q2
df[['year','q']] = df.date.str.split('Q', expand=True)
df.year = df.year.astype(int)
df.q = 'Q' + df.q
print (df)
date year q
0 2015Q1 2015 Q1
1 2015Q2 2015 Q2
また、あなたがPeriod
を使用することができます。
df['date'] = pd.to_datetime(df.date).dt.to_period('Q')
df['year'] = df['date'].dt.year
df['quarter'] = df['date'].dt.quarter
print (df)
date year quarter
0 2015Q1 2015 1
1 2015Q2 2015 2
パーフェクトソリューション - 多くのありがとう! –
実際にdatetimeが必要ないのですか? –
あなたはまたdatetimeIndexを構築することができその上に年と四半期を呼び出します。
df.index = pd.to_datetime(df.date)
df['year'] = df.index.year
df['quarter'] = df.index.quarter
date year quarter
date
2015-01-01 2015Q1 2015 1
2015-04-01 2015Q2 2015 2
あなたも、あなたがdatetimeIndexを持っている場合、あなたは例えば、このようなGROUPBYを行うことができ一年と四半期の専用の列を必要としません。注:df.groupby(df.index.quarter)
何が価値があるのは、パンダは、Aは期間タイプ。 'pd.Period( '2015Q1')'あなたに '.year'と' .quarter'を呼び出すオブジェクトを与えます。そして期間に関連する計算を行う – Boud