如何创建多个空数据框?

时间:2019-07-04 05:12:49

标签: python pandas dataframe

代替:

a=pd.DataFrame()

d=pd.DataFrame()

c=pd.DataFrame()

d=pd.DataFrame()

e=pd.DataFrame()
一次

一次。有没有一种快速的方法可以用空的数据框初始化所有变量?因为最终我想使用for循环将数据帧值分配给

var_names=[a,b,c,d,e]

基本上,我需要将较大的数据框的值分配给具有目标名称的小数据框(可能是复杂的名称,只是为了便于理解)

variables=[ag_2018,al_2018,au_2018,bu_2018,cu_2018,fu_2018,hc_2018,
           ni_2018,pb_2018,rb_2018,ru_2018,sn_2018,sp_2018,wr_2018,
           zn_2018]

for var in variables:
    var=(a portion of a much bigger dataframe)

这些是我的代码。 Python不允许我显示错误:ag_2018未定义。

我看到了一些使用dict的建议,因为我对dict不太熟悉,所以有人可以提供更多有关如何应用它的详细信息。谢谢。

4 个答案:

答案 0 :(得分:1)

假设您必须制作n个空数据框并将其放入列表中,您可以借助列表理解来做类似的事情。

n = 10

df_list = [pd.DataFrame() for x in range(n)]

您可以使用dict进行类似操作,以便可以使用非int键,

import pandas as pd
df_dict = dict(('df_' + str(x), pd.DataFrame()) for x in range(10))

答案 1 :(得分:0)

如果您正在寻找DataFrames的列表,则应该能够使用如下列表理解来做到这一点: [pd.Dataframe() for var in var_names]

答案 2 :(得分:0)

如果要使用字典:

SELECT category.cat_id AS catId, category.cat_parent_id AS catParentId, subcategory.cat_id AS subcatId,subcategory.cat_parent_id AS subcatParentId, category.cat_name, CONCAT( IFNULL(subcategory.cat_parent_id, category.cat_parent_id), category.cat_parent_id, category.cat_id, category.cat_name) AS sorter FROM ticket_categories AS category LEFT JOIN ticket_categories AS subcategory ON subcategory.cat_parent_id = category.cat_id GROUP BY category.cat_id ORDER BY sorter = ['a','b','c','d']`

df_names

然后通过以下方式使用df_list = [pd.DataFrame() for df in df_names]dict()通过两个列表对字典进行类型转换:

zip()

答案 3 :(得分:-1)

您可以尝试下面的两个代码。

import pandas as pd
df_list = ['a', 'b', 'c', 'd', 'e']
for i in df_list:
    i = pd.DataFrame()