而不是:
a=pd.DataFrame()
d=pd.DataFrame()
c=pd.DataFrame()
d=pd.DataFrame()
e=pd.DataFrame()
有没有一种快速的方法可以用空的dataframe初始化所有的变量?因为最终我想用for循环来给dataframe赋值
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不是很熟悉,请有人提供更多关于如何应用它的细节。谢谢。
5条答案
按热度按时间bpsygsoo1#
假设你必须让
n
为空 Dataframe ,并把它放在一个列表中,你可以在列表解析的帮助下做类似的事情。你可以用
dict
做类似的事情,这样你就可以使用非int键,kdfy810k2#
如果你想使用字典:
然后使用
dict()
和zip()
通过以下方式使用两个列表类型转换字典:s3fp2yjn3#
使用itertools的另一个想法:
q0qdq0h24#
如果你正在寻找一个DataFrames的列表,你应该能够用一个列表解析来做到这一点,如下所示:
[pd.Dataframe() for var in var_names]
r6l8ljro5#
你可以试试下面两行代码。