使用循环号中的名称创建新的数据框

时间:2018-08-17 13:09:36

标签: python pandas loops

我试图在python中创建循环。该代码可以在下面看到。

df=pd.DataFrame.copy(mef_list)
form=['','_M3','_M6','_M9','_M12','_LN','_C']
for i in range(0, len(form)):
    df=pd.DataFrame.copy(mef_list)
    df['Variable_new']=df['Variable']+str(form[i])

运行代码时,结果仅来自最后一个循环,即variable+'_C',因为新循环开始时总是替换数据帧(df)。为了避免出现此问题,我认为如果将数据帧(df)重命名为加上循环数,就可以解决该问题。

我使用了str函数,希望获得df0df1,...,df6,但它不适用于数据框名称。请建议我如何通过添加循环数来更改数据帧的名称,并且我仍然会以任何其他方式打开。

谢谢!

2 个答案:

答案 0 :(得分:0)

mef_list = ["UR", "CPI", "CEI", "Farm", "PCI", "durable", "C_CVM"]
form = ['', '_M3', '_M6', '_M9', '_M12', '_LN', '_C']
Variable_new = []
foo = 0
for variable in form:
     Variable_new.append(mef_list[foo]+variable)
     foo += 1
print(Variable_new)

答案 1 :(得分:0)

这不是Python要做的事情,您是否考虑过创建数据框列表?

df=pd.DataFrame.copy(mef_list)
form=['','_M3','_M6','_M9','_M12','_LN','_C']
list_of_df = list()
for i in range(0, len(form)):
    df=pd.DataFrame.copy(mef_list)
    df['Variable_new']=df['Variable']+str(form[i])
    list_of_df.append(df)

然后,您可以以df0的身份访问“ list_of_df[0]

您也不需要遍历一个范围,只需遍历表单列表本身即可:

form=['','_M3','_M6','_M9','_M12','_LN','_C']
list_of_df = list()
for i in form:
    df=pd.DataFrame.copy(mef_list)
    df['Variable_new']=df['Variable']+str(i) ## You can remove str() if everything in form is already a string
    list_of_df.append(df)