Python pandas合并或合并数据帧

2024-07-08 15:33:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一系列csv,我将其加载到dataframes并存储在一个列表中(dataframesArray)。列表和数据帧如下所示:

    dataframesArray [            
    BBG.XAMS.UL.S_pnl_pos_cost
        date                                  
        2015-03-23                    0.000000
        2015-03-24                    0.000000
        2015-03-25                   -0.674717
        2015-03-26                   69.140999
        2015-03-27                  -70.128728,             
    BBG.XAMS.UNA.S_pnl_pos_cost
        date                                   
        2015-03-23                    -0.674929
        2015-03-24                   -15.138444
        2015-03-25                    90.830662
        2015-03-26                    21.446129
        2015-03-27                    -2.554376,             
    BBG.XAMS.UL.S_pnl_pos_cost
        date                                  
        2014-10-20                  -15.220730
        2014-10-21                 3031.610010
        2014-10-22                 1976.815412
        2014-10-23                -2974.037294
        2014-10-24                  796.775000,
   BBG.XAMS.UNA.S_pnl_pos_cost
        date                                   
        2014-10-20                    -4.140378
        2014-10-21                   618.064066
        2014-10-22                   -71.104800
        2014-10-23                   828.063647
        2014-10-24                     0.000000]

产品数据为2(BBG.XAMS.UL成本和BBG.XAMS.UNA酒店到目前为止,将来会有更多的产品。我想将数据帧列表合并到一个数据帧(称为result)中(不确定是哪个),这样它们看起来像:

^{pr2}$

我试图通过以下方法来实现:

^{3}$

其中axis是日期。看起来数据是按日期合并的,但我缺少2015-03-23开始的一周的数据。我当前的concat结果数据帧如下:

BBG.XAMS.UL.S_pnl_pos_cost  BBG.XAMS.UNA.S_pnl_pos_cost  
date                                                                 
2014-10-20                  -15.220730                    -4.140378  
2014-10-21                 3031.610010                   618.064066  
2014-10-22                 1976.815412                   -71.104800  
2014-10-23                -2974.037294                   828.063647  
2014-10-24                  796.775000                     0.000000  
2015-03-23                         NaN                          NaN  
2015-03-24                         NaN                          NaN  
2015-03-25                         NaN                          NaN  
2015-03-26                         NaN                          NaN  
2015-03-27                         NaN                          NaN  

我目前的代码是:

stockPricesDf=pd.read_csv(f,engine='c',header=0,index_col=0, parse_dates=True, infer_datetime_format=True,usecols=(0,3))

                stockPricesDf.rename(columns={'adjusted_last_acc': row},inplace=True)    

                dataframesArray.append(stockPricesDf) 

                result = pd.concat(dataframesArray,axis=1)

我在一些目录中循环以获取存储在csv文件中的产品数据。在

让别人知道我做了什么错事

非常感谢


Tags: csv数据pos列表date产品nanul
1条回答
网友
1楼 · 发布于 2024-07-08 15:33:43

试试这个:

result = pd.concat(dataframesArray, axis=1) # like you did
result = result.groupby(result.columns, axis=1).sum()

如您所见,第一步是这样做的(组成数字):

^{pr2}$

第二步将共享相同名称的列分组到单个列中:

                  UL       UNA
2015-03-23  2.169534  0.294107
2015-03-24 -0.077550 -0.758760
2015-03-25  0.159659 -3.167541
2015-03-26  0.895535  0.944644
2015-03-27 -0.385408 -0.005069
2015-10-20  1.855446 -0.229635
2015-10-21 -0.400450 -0.237323
2015-10-22  1.103165  0.718134
2015-10-23 -0.157415  1.119828
2015-10-24 -0.016321 -0.371061

相关问题 更多 >

    热门问题