Eu tenho três dataframes de série temporal
df_list=[px, SC, SMA]
Cada dataframe possui colunas idênticas e datas idênticas. Também tenho uma lista de títulos (condensados para efeito de exemplo):
securities3=['SPX Index','BIL US Equity']
Estou tentando fazer algo parecido com o abaixo, que não possui a sintaxe correta:
for df in df_list:
for col in df.columns:
if col==securities3:
***create new dataframe here***
Em palavras, quero iterar sobre cada dataframe em df_list, dentro de cada coluna de df, quando a coluna corresponder aos componentes de Securities3, quero que um novo dataframe seja formado com essas três colunas (uma coluna de cada dataframe, lista de títulos3 correspondente .
Para fornecer mais detalhes, veja abaixo os dados de amostra:
import pandas as pd
px_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
'SPX Index': [58.63, 21.25, 19.17, 18.8],
'BIL US Equity': [35,105,27,98]}
SC_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
'SPX Index': [20.50, 6, 82, 74.6],
'BIL US Equity': [74,62,8,99]}
SMA_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
'SPX Index': [2, 95.3, 39, 68.27],
'BIL US Equity': [58,37,74,11]}
px = pd.DataFrame(px_data)
SC = pd.DataFrame(SC_data)
SMA = pd.DataFrame(SMA_data)
A saída alvo é:
SPX_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
'SPX Index': [58.63, 21.25, 19.17, 18.8],
'SPX Index': [20.50, 6, 82, 74.6],
'SPX Index': [2, 95.3, 39, 68.27]}
SPX = pd.DataFrame(SPX_data)
Estou tentando criar o dataframe SPX (por exemplo) em loop, pois a lista (securities3) pode mudar. Além disso, como ponto de referência, por fazer parte de um processo maior, as colunas nos dataframes serão sempre idênticas às strings (e posições) da lista, como neste exemplo.
Obrigado pela ajuda.
Supondo que todos os dataframes tenham as mesmas datas na mesma ordem, você pode concatenar as datas + as colunas com valores em
axis=1
:Atualizar:
Se
'Date'
for o índice, remova a data daconcat
chamada.Se você quiser cada dataframe em uma variável, remova o loop externo na compreensão da lista.