如果它包含Q1,Q2,Q3,Q4和&,我想替换['时间段']值。根据条件在另一列['日期']中更新它。 但是,执行下面的脚本后,最后的脚本结果将在['Date']列中更新。
DT:
Time Period Frequency Date
2005Q1 2
2005Q2 2
2002Q3 2
2005Q4 2
2005Q1 2
2003Q2 2
2004Q3 2
2001Q4 2
请帮忙。
dt['Date'] = dt[dt['Frequency'] == '2']['Time Period'].apply(lambda x: x.replace('Q1','-01-01'))
dt['Date'] = dt[dt['Frequency'] == '2']['Time Period'].apply(lambda x: x.replace('Q2','-04-01'))
dt['Date'] = dt[dt['Frequency'] == '2']['Time Period'].apply(lambda x: x.replace('Q3','-07-01'))
dt['Date'] = dt[dt['Frequency'] == '2']['Time Period'].apply(lambda x: x.replace('Q4','-10-01'))
答案 0 :(得分:1)
以下方法可行:
dt['Date'] = dt[dt['Frequency'] == '2']['Time Period'].apply(
lambda x: x.replace('Q1','-01-01').replace('Q2','-04-01').replace('Q3','-07-01').replace('Q4','-10-01')
)
答案 1 :(得分:0)
df['Date'] = df.loc[df['Frequency']==2, 'Time Period'].replace({
'Q1': '-01-01',
'Q2': '-04-01',
'Q3': '-07-01',
'Q4': '-10-01'
})
此代码根据您的要求工作。