如何在不丢失数据框名称的情况下加入数据框

时间:2019-10-15 22:54:58

标签: python pandas dataframe

如何在不丢失数据框名称的情况下加入数据框

我在一个列表中有几个数据框,并且由于加入了相同的列,因此加入它们会丢失每个数据框的标识。

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)

enter image description here

我得到以下输出:

由于数据帧具有相等的列,我只是不知道哪个条目属于哪个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

1 个答案:

答案 0 :(得分:1)

阅读时使用add_sufix

pd_list = [pd.read_csv(f'{ticker}.csv').add_suffix(ticker) for ticker in ticker_list]

或者您可以concataxis=0并将股票行情定义为另一列

pd_list = [pd.read_csv(f'{ticker}.csv').assign(ticker=ticker) for ticker in ticker_list]

df = pd.concat(pd_list)