pandas 如何创建多个空 Dataframe ?

siv3szwd  于 2023-03-21  发布在  其他
关注(0)|答案(5)|浏览(247)

而不是:

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不是很熟悉,请有人提供更多关于如何应用它的细节。谢谢。

bpsygsoo

bpsygsoo1#

假设你必须让n为空 Dataframe ,并把它放在一个列表中,你可以在列表解析的帮助下做类似的事情。

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))
kdfy810k

kdfy810k2#

如果你想使用字典:

df_names = ['a', 'b', 'c', 'd']
df_list = [pd.DataFrame() for df in df_names]

然后使用dict()zip()通过以下方式使用两个列表类型转换字典:

df_dict = dict(zip(df_names, df_list))
s3fp2yjn

s3fp2yjn3#

使用itertools的另一个想法:

from itertools import repeat
 a, b, c = repeat(pd.DataFrame({'col':[0.0]}), 3)
q0qdq0h2

q0qdq0h24#

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

r6l8ljro

r6l8ljro5#

你可以试试下面两行代码。

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

相关问题