【问题标题】:Add values of two nested for loops in a dataframe在数据框中添加两个嵌套 for 循环的值
【发布时间】:2021-09-01 19:35:33
【问题描述】:

我有两个嵌套 for 循环的问题,以简化的方式会是这样的:

var1 = [1,2]
var2 = [10,20,30]

for i in var1:
     for j in var2:

我想在每次迭代中添加这些值以创建如下表:

Var1 Var2
1 10
1 20
1 30
2 10
2 20
2 30

我认为最好的方法是创建一个数据框以转换为 Excel 文件。但是,我不知道如何创建该数据框并在每次迭代中添加相应的值。

【问题讨论】:

    标签: python excel dataframe


    【解决方案1】:

    您可以将它们都放在字典中并将值附加到循环中:

    var1 = [1,2]
    var2 = [10,20,30]
    my_dict = {'var1':[],'var2':[]}
    for i in var1:
      for j in var2:
        my_dict['var1'].append(i)
        my_dict['var2'].append(j)
    df =pd.DataFrame(my_dict)
    

    【讨论】:

      【解决方案2】:

      您可以形成包含 var1 和 var2 值的二维数组,并将其传递给数据框,如下所示:

      import pandas as pd
      
      var1 = [1,2]
      var2 = [10,20,30]
      
      # for 2d array containing each value of var1/var2
      data = [[i, j] for i in var1 for j in var2]
      
      df = pd.DataFrame(data, columns = ['Var1', 'Var2'])
      file_name = "data.xlsx"
      df.to_excel(file_name)
      

      结果如下:

         Var1  Var2
      0     1    10
      1     1    20
      2     1    30
      3     2    10
      4     2    20
      5     2    30
      

      您还需要安装openpyxl 使用:

      pip install openpyxl
      

      【讨论】:

        【解决方案3】:

        你可以这样做:

            var1 = [1,2]
        var2 = [10,20,30]
        var3 = []
        var4 = []
        for i in var1:
            a = 0
            for j in var2:
                var4.append(var1[i - 1])
                var3.append(var2[a])
                a = a + 1
        
        
        print(var4)
        print(var3)
        

        这样: var3 = [10, 20, 30, 10, 20, 30] 和 var4 = [1, 1, 1, 2, 2, 2] 这适用于任何大小的列表。

        【讨论】:

        • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
        【解决方案4】:
        import pandas as pd
        var1 = [1,2]
        var2 = [10,20,30]
        
        df = pd.DataFrame(columns = ['Var1', 'Var2'])
        for i in var1:
            for j in var2:
                df = df.append({'Var1':i,'Var2':j},ignore_index=True)
        print(df)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-02-21
          • 2021-09-15
          • 2019-11-09
          • 2017-08-02
          • 1970-01-01
          • 1970-01-01
          • 2021-02-05
          • 1970-01-01
          相关资源
          最近更新 更多