【问题标题】:Create new data frame with the name from loop number使用来自循环号的名称创建新数据框
【发布时间】:2019-01-24 13:01:05
【问题描述】:

我尝试在 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,但它不适用于数据框名称。请建议我如何通过添加循环数来更改数据框的名称,并且我仍然可以使用任何替代方式。

谢谢!

【问题讨论】:

  • 请不要将代码发布为图片。
  • @Nouman 谢谢,已修改

标签: python pandas loops


【解决方案1】:
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)

【讨论】:

  • 我需要数据框,因为即使更改名称也有一些信息必须保留
  • @SasiwutChaiyadecha 我已经修改了代码,希望对你有所帮助。
【解决方案2】:

这不是 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)

然后你可以以list_of_df[0]的身份访问'df0'

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

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)

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2018-04-11
    • 2018-12-03
    相关资源
    最近更新 更多