Вместо того, чтобы делать:

a=pd.DataFrame()

d=pd.DataFrame()

c=pd.DataFrame()

d=pd.DataFrame()

e=pd.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. Благодарю.

2
Waynexu 4 Июл 2019 в 08:12

4 ответа

Лучший ответ

Допустим, вы должны создать 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
Sreeram TP 4 Июл 2019 в 06:07

Если вы хотите использовать словари:

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

1
Joe 4 Июл 2019 в 05:32

Вы можете попробовать ниже двухстрочный код.

import pandas as pd
df_list = ['a', 'b', 'c', 'd', 'e']
for i in df_list:
    i = pd.DataFrame()
-1
Rishi Bansal 4 Июл 2019 в 05:16

Если вы ищете список DataFrames, вы можете сделать это с помощью понимания списка, например: {{Х0}}

0
tchainzzz 4 Июл 2019 в 05:15