替换python数据帧值并存储在另一列中

时间:2017-06-19 11:07:06

标签: python dataframe

如果它包含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'))

2 个答案:

答案 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'
    })

此代码根据您的要求工作。