使用 for 循环创建 n 个空数据帧

时间:2021-07-19 12:49:11

标签: python python-3.x dataframe

我想使用 for 循环创建 n 个空数据帧。

类似:

import pandas as pd

n=6

for i in range(0,n):

     df(i) = pd.DataFrame()

输出如下:

  df1,df2,df3,df4........dfn

3 个答案:

答案 0 :(得分:0)

您可以将它们存储在数据框列表中:

dfs = []

n = 6

for i in range(n):
    dfs.append(pd.DataFrame())

另一种方法是使用具有有意义名称的字典(这些当然也可以只是数字 1 到 6:

names = ['df1', 'df2', 'df3']
dfs = {}

for name in names:
    dfs[name] = pd.DataFrame()

答案 1 :(得分:0)

创建数据框并将它们附加到列表中:

df_list = list()
for i in range(6):
    d_one = pd.DataFrame()
    df_list.append(d_one)

通过简单的正常索引访问单个数据帧:

df_list[0]

答案 2 :(得分:0)

对您给出的示例的简短回答是,您没有。 这就是集合(lists、dicts)的用途。

有了理解,这是一项相当微不足道的任务。

# as a list
list_of_df = [pd.DataFrame() for _ in range(n)]
print(list_of_df[0])

如果您仍然想通过他们的名字来引用他们,那么 dict 的形式可能更有意义。

dict_of_df = {f'df{i}': pd.DataFrame() for i in range(1, n + 1)}
print(dict_of_df['df1'])

虽然可以修改 dictglobals(),但如果您使用 IDE,您的 linter 会讨厌您,并且您将在各个角落与它作斗争。

# don't do this
for i in range(1, n + 1):
    globals()[f'df{i}'] = pd.DataFrame()
print(df1)

这是创建您自己的 dict 的一种更黑客的方式,如果您这样做了,无论如何您都必须对变量名称进行硬编码。