我正在嘗試將年份和季度轉換為pandas. 在下面的示例中,我正在嘗試獲取1980-03-31等等1980Q1。
df=pd.DataFrame({'year':['1980','1980','1980','1980'],'qtr':
['Q1','Q2','Q3','Q4']})
scenario['date']=pd.to_datetime(scenario['year'] scenario['qtr'], infer_datetime_format=True)
scenario[['date','year','qtr']]
date year qtr
0 1980-01-01 1980 Q1
1 1980-04-01 1980 Q2
2 1980-07-01 1980 Q3
3 1980-10-01 1980 Q4
uj5u.com熱心網友回復:
你在找QuarterEnd抵消嗎?
import pandas as pd
df=pd.DataFrame({'year':['1980','1980','1980','1980'],'qtr':
['Q1','Q2','Q3','Q4']})
df['date'] = pd.to_datetime(df['year'] df['qtr']) pd.tseries.offsets.QuarterEnd()
df[['date','year','qtr']]
date year qtr
0 1980-03-31 1980 Q1
1 1980-06-30 1980 Q2
2 1980-09-30 1980 Q3
3 1980-12-31 1980 Q4
uj5u.com熱心網友回復:
pd.PeriodIndex(df['year'] df['qtr'], freq='Q').to_timestamp(freq='Q')
輸出:
0 1980-03-31
1 1980-06-30
2 1980-09-30
3 1980-12-31
dtype: datetime64[ns]
uj5u.com熱心網友回復:
import datetime as dt
import pandas as pd
def func(x):
# converts columns to datetime.date object
if x.qtr == 'Q1':
month = 1
elif x.qtr == 'Q2':
month = 3
elif x.qtr == 'Q3':
month = 7
elif x.qtr == 'Q4':
month = 10
dt_obj = dt.date(year=int(x.year), month=month, day=1)
return dt_obj
df=pd.DataFrame({'year':['1980','1980','1980','1980'],'qtr':
['Q1','Q2','Q3','Q4']})
print(df)
df['date'] = df.apply(lambda x: func(x), axis=1)
print(df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/532780.html
標籤:Python熊猫约会时间
