【问题标题】:Pandas adding multiple null data frames熊猫添加多个空数据框
【发布时间】:2021-08-27 14:45:23
【问题描述】:

我想创建大约 10 个数据框,它们的行数和列数与我想指定的相同。 目前我正在创建一个具有特定行的 df,然后使用 pd.concat 将列添加到数据框中。我必须为每个数据帧分别编写 10 行代码。有没有一种方法可以同时处理所有数据帧。比如说,所有的数据框都有 15 行和 50 列。 我也不想使用循环。数据框中的所有值都是 NaN,我想对每个数据框执行不同的功能,因此编辑一个数据框不应更改其他数据框的值。

【问题讨论】:

  • 请在您的问题中发布您的代码,并尝试创建 10 个变量并将相同的 None DataFrame 分配给所有变量

标签: python pandas dataframe


【解决方案1】:

您可以简单地创建一个np.nan 的numpy 数组,然后创建一个数据框:

df = pd.DataFrame(np.zeros([15, 50])*np.nan)

要创建 10 个数据帧,您可以在循环中运行它并将其添加到数组中。

dfs = []
for i in range(10): 
    dfs.append(pd.DataFrame(np.zeros([15, 50])*np.nan))

然后您可以索引到dfs 并相应地更改任何值。它不会影响任何其他数据框。

【讨论】:

    【解决方案2】:

    你可以这样做:

    index_list = range(10)
    column_list = ['a','b','c','d']
    for i in range(5):
       locals()["df_" + str(i)] = pd.DataFrame(index=index_list, columns=column_list)
    

    这将创建 5 different dataframes (df_1 to df_5) 每个 10 rows 和 4 columns named a,b,c,d 具有所有值作为 Nan

    【讨论】:

      【解决方案3】:
      import pandas as pd
      
      row_num = 15
      col_num = 50
      temp=[]
      
      for col_name in range(0, col_num):
          temp.append(col_name)
      

      数据框的创建

      df = pd.DataFrame(index=range(0,row_num), columns=temp)
      

      此代码在 pandas 中创建一个具有指定行号和列号的数据框。但是如果没有循环或某种形式的迭代,就必须编写多行相同的代码。

      注意:这是一个纯粹的 pandas 实现。 github gist can be found here.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-21
        • 1970-01-01
        • 1970-01-01
        • 2021-06-27
        • 1970-01-01
        相关资源
        最近更新 更多