Python Pandas连接多个数据框

时间:2018-11-02 08:15:32

标签: python pandas dataframe

我正在遵循Python for Finance tutorial,在这里您将所有S&P500股票合并到一个数据框中,即e。外连接所有不同股票的所有已存储CSV文件。

当前输出:sp500

此代码如下:

def compile_data():
with open("sp500tickers.pickle", "rb") as f:
    tickers = Cpickle.load(f)

main_df = pd.DataFrame()

for count, ticker in enumerate(tickers):
    df = pd.read_csv('stock_dfs/{}.csv'.format(ticker))
    df.set_index('Date', inplace=True)

    df.rename(columns={'Adj Close': ticker}, inplace=True)
    df.drop(['Open', 'High', 'Low', 'Close', 'Volume'], 1, inplace=True)

    if main_df.empty:
        main_df = df
    else:
        main_df = main_df.join(df, how='outer')


    if count % 10 == 0:
        print(count)
print(main_df.head())
main_df.to_csv('sp500_joined_closes.csv')

compile_data()

理想情况下,我希望将数据帧像这样连接/连接: Desired output

非常感谢所有想法和技巧。

最好的问候, 鲁布里克斯(Rubrix)

1 个答案:

答案 0 :(得分:3)

使用melt,例如:

pd.melt(df, id_vars=['Date'], var_name='Ticker', value_name='Closed')