替换python数据帧值并存储在另一列中
如果['Time Period']值包含Q1、Q2、Q3、Q4,我想替换它,并根据条件在另一列['Date']中更新它。 但是,在执行下面的脚本之后,最后一个脚本结果将在['Date']列中更新 dt: 请帮忙替换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
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'
})