我想使用 for 循环创建 n 个空数据帧。
类似:
import pandas as pd
n=6
for i in range(0,n):
df(i) = pd.DataFrame()
输出如下:
df1,df2,df3,df4........dfn
答案 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)
对您给出的示例的简短回答是,您没有。
这就是集合(list
s、dict
s)的用途。
有了理解,这是一项相当微不足道的任务。
# 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'])
虽然可以修改 dict
的 globals()
,但如果您使用 IDE,您的 linter 会讨厌您,并且您将在各个角落与它作斗争。
# don't do this
for i in range(1, n + 1):
globals()[f'df{i}'] = pd.DataFrame()
print(df1)
这是创建您自己的 dict
的一种更黑客的方式,如果您这样做了,无论如何您都必须对变量名称进行硬编码。