Looping por uma lista de nomes de dataframes

1
Voto

Eu tenho uma lista de dataframes, cada um criado a partir de uma única consulta na web;

Eu tenho uma lista de dataframes, cada um criado a partir de uma única consulta na web;

bngimp=parse_forecast_data(get_json('419524'), None)
belimp=parse_forecast_data(get_json('419525'), None)
braimp=parse_forecast_data(get_json('419635'), None)
chilimp=parse_forecast_data(get_json('419526'), None)
chinimp=parse_forecast_data(get_json('419527'), None)
domimp=parse_forecast_data(get_json('419633'), None)
fraimp=parse_forecast_data(get_json('419636'), None)
greimp=parse_forecast_data(get_json('419528'), None)
ghaimp=parse_forecast_data(get_json('419638'), None)
indimp=parse_forecast_data(get_json('419530'), None)
indoimp=parse_forecast_data(get_json('419639'), None)
itaimp=parse_forecast_data(get_json('419533'), None)
japimp=parse_forecast_data(get_json('419534'), None)
kuwimp=parse_forecast_data(get_json('419640'), None)
litimp=parse_forecast_data(get_json('419641'), None)
meximp=parse_forecast_data(get_json('419537'), None)
bngimp=parse_forecast_data(get_json('419524'), None) belimp=parse_forecast_data(get_json('419525'), None) braimp=parse_forecast_data(get_json('419635'), None) chilimp=parse_forecast_data(get_json('419526'), None) chinimp=parse_forecast_data(get_json('419527'), None) domimp=parse_forecast_data(get_json('419633'), None) fraimp=parse_forecast_data(get_json('419636'), None) greimp=parse_forecast_data(get_json('419528'), None) ghaimp=parse_forecast_data(get_json('419638'), None) indimp=parse_forecast_data(get_json('419530'), None) indoimp=parse_forecast_data(get_json('419639'), None) itaimp=parse_forecast_data(get_json('419533'), None) japimp=parse_forecast_data(get_json('419534'), None) kuwimp=parse_forecast_data(get_json('419640'), None) litimp=parse_forecast_data(get_json('419641'), None) meximp=parse_forecast_data(get_json('419537'), None) bngimp=parse_forecast_data (get_json ('419524'), Nenhum) belimp=parse_forecast_data (get_json ('419525'), Nenhum) braimp=parse_forecast_data (get_json ('419635'), Nenhum) chilimp=parse_forecast_data (get_json ('419526'), Nenhum) chinimp=parse_forecast_data (get_json ('419527'), Nenhum) domimp=parse_forecast_data (get_json ('419633'), Nenhum) fraimp=parse_forecast_data (get_json ('419636'), Nenhum) greimp=parse_forecast_data (get_json ('419528'), Nenhum) ghaimp=parse_forecast_data (get_json ('419638'), Nenhum) indimp=parse_forecast_data (get_json ('419530'), Nenhum) indoimp=parse_forecast_data (get_json ('419639'), Nenhum) itaimp=parse_forecast_data (get_json ('419533'), Nenhum) japimp=parse_forecast_data (get_json ('419534'), Nenhum) kuwimp=parse_forecast_data (get_json ('419640'), Nenhum) litimp=parse_forecast_data (get_json ('419641'), Nenhum) meximp=parse_forecast_data (get_json ('419537'), Nenhum)

Eu preciso formatar cada dataframe da mesma maneira que a seguir;

Eu preciso formatar cada dataframe da mesma maneira que a seguir;
bngimp=bngimp[['From Date','Sales Volume']]
bngimp=bngimp.set_index('From Date')
bngimp.index=pd.to_datetime(bngimp.index)
bngimp=bngimp.groupby(by=[bngimp.index.year, bngimp.index.month]).sum()
bngimp.columns=['bngimp']
bngimp=bngimp[['From Date','Sales Volume']] bngimp=bngimp.set_index('From Date') bngimp.index=pd.to_datetime(bngimp.index) bngimp=bngimp.groupby(by=[bngimp.index.year, bngimp.index.month]).sum() bngimp.columns=['bngimp'] bngimp=bngimp[['Data de início', 'Volume de vendas']] bngimp=bngimp.set_index ('Data de Partida') bngimp.index=pd.to_datetime (bngimp.index) bngimp=bngimp.groupby (by=[bngimp.index.year, bngimp.index.month]). sum () bngimp.columns=['bngimp']

Existe alguma maneira de fazer um loop através do nome de dataframes sem ter que copiar e colar cada nome de dataframe no código acima?

Existe alguma maneira de fazer um loop através do nome de dataframes sem ter que copiar e colar cada nome de dataframe no código acima?

Haverá mais dataframes, então copiar e colar demorará muito!

Haverá mais dataframes, então copiar e colar demorará muito!

Qualquer ajuda é muito apreciada;

Qualquer ajuda é muito apreciada;

Fonte

loops python dataframe pandas formatting

1 Responda
1
Voto

Sugiro criar dicionário para números de mapas por nomes de DataFrame e criar dicionário de DataFrame chamado out:

d={'419524': 'bngimp', '419525': 'belimp', ...}

out={}
for k, v in d.items():
    df=parse_forecast_data(get_json(k), None)
    df=df[['From Date','Sales Volume']]
    df=df.set_index('From Date')
    df.index=pd.to_datetime(df.index)
    df=df.groupby(by=[df.index.year, df.index.month]).sum()
    df.columns=[v]
    out[v]=df

então, para obter o DataFrame, selecione por chave:

print (out['bngimp'])

Além disso, se quiser criar um grande DataFrame, é possível usar:

df=pd.concat(out, axis=1)
Fonte

1 -spcol

Você pode interessar

© 2021   OlaMundo.Org