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

替换python数据帧值并存储在另一列中,python,dataframe,Python,Dataframe,如果['Time Period']值包含Q1、Q2、Q3、Q4,我想替换它,并根据条件在另一列['Date']中更新它。 但是,在执行下面的脚本之后,最后一个脚本结果将在['Date']列中更新 dt: 请帮忙 dt['Date'] = dt[dt['Frequency'] == '2']['Time Period'].apply(lambda x: x.replace('Q1','-01-01')) dt['Date'] = dt[dt['Frequency'] == '2']['Time

如果['Time Period']值包含Q1、Q2、Q3、Q4,我想替换它,并根据条件在另一列['Date']中更新它。 但是,在执行下面的脚本之后,最后一个脚本结果将在['Date']列中更新

dt:

请帮忙

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'))

以下将起作用:

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')
)

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

其更新“时间段”值,不替换任何内容。您可以使用一些默认值共享一小部分代码,以便我可以使用。您可以使用查询中提到的dataframe,请检查上面我已修改了答案。如果有任何问题,请告诉我。很高兴它有所帮助。它更新了“时间段”值,不替换任何内容,但您希望在新字段“日期”中更新“时间段”,以便它可以按您的需要工作。。你能给我看一下我上面代码生成的输出吗。
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')
)
df['Date'] = df.loc[df['Frequency']==2, 'Time Period'].replace({
        'Q1': '-01-01',
        'Q2': '-04-01',
        'Q3': '-07-01',
        'Q4': '-10-01'
    })