Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何加入数据帧而不丢失其名称_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何加入数据帧而不丢失其名称

Python 如何加入数据帧而不丢失其名称,python,pandas,dataframe,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_

如何加入数据帧而不丢失其名称

我在一个列表中有几个数据帧,通过连接它们,我失去了每个数据帧的标识,因为它们有相等的列

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

阅读时使用
add_sufix

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

或者您可以通过
axis=0
将股票代码定义为另一列

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

df = pd.concat(pd_list)

欢迎使用stackoverflow,复制并粘贴数据帧和预期输出的示例您的方法不推荐。最好是
concat
使用多索引列轻松地可视化连接数据帧中的每个子数据帧