如何在不丢失数据框名称的情况下加入数据框
我在一个列表中有几个数据框,并且由于加入了相同的列,因此加入它们会丢失每个数据框的标识。
ticker_list = ['SBSP3.SA', 'CSMG3.SA', 'CGAS5.SA']
pd_list = [pd.read_csv('{}.csv'.format(ticker)) for ticker in ticker_list]
for index, df in enumerate(pd_list):
df['source'] = ticker_list[index]
df = pd.concat(pd_list,axis = 1)
我得到以下输出:
由于数据帧具有相等的列,我只是不知道哪个条目属于哪个csv文件
我如何将每个人的身份放在地牢中?例如:
Date High_SBSP3.SA Low_SBSP3.SA Open_SBSP3.SA Close_SBSP3.SA Volume_SBSP3.SA Adj Close_SBSP3.SA
0 2017-01-02 14.70 14.60 14.64 14.66 7525700.0 13.880955
1 2017-01-03 15.65 14.95 14.95 15.50 39947800.0 14.676315
2 2017-01-04 15.68 15.31 15.45 15.50 37071700.0 14.676315
3 2017-01-05 15.91 15.62 15.70 15.75 47586300.0 14.913031
4 2017-01-06 15.92 15.50 15.78 15.66 25592000.0 14.827814
答案 0 :(得分:1)
阅读时使用add_sufix
。
pd_list = [pd.read_csv(f'{ticker}.csv').add_suffix(ticker) for ticker in ticker_list]
或者您可以concat
到axis=0
并将股票行情定义为另一列
pd_list = [pd.read_csv(f'{ticker}.csv').assign(ticker=ticker) for ticker in ticker_list]
df = pd.concat(pd_list)