Я думаю, это помогло бы немного узнать, чего вы пытаетесь достичь. Но, как уже отмечали другие, вы не делаете копии чего-либо. В большинстве этих операций вы работаете с одним и тем же исходным фреймом данных с несколькими ссылками на него.
Кроме того, не используйте 'l' и '1' для похожих имен переменных! Я использовал dftemp_L и dftemp_M ниже.
Просто предположите, что вы надеетесь достичь, ниже, вероятно, правильный способ сделать это.
d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
dftemp1 = pd.DataFrame(d)
dftemp2 = dftemp1.copy()
dftemp_L = [dftemp1, dftemp2]
# There are more pythonic ways to do this, but this explicitly shows what is happening:
dftemp_M = []
for my_df in dftemp_L:
dftemp_M.append(my_df.copy())
dftemp_M[0][:] = np.nan