【问题标题】:Concat data from dictionary based on date [duplicate]基于日期的字典中的Concat数据[重复]
【发布时间】:2021-03-26 07:58:04
【问题描述】:

所以我有一个带有数据框的字典: 例如 df[0]=

    Date         StockPrice
    01/01/2020   34.2
    01/02/2020   35
    01/03/2020   36
      ...

df[1]=

    Date        Rate    
   01/01/2020   4
   01/02/2020   5
   01/03/2020   5
   ...
 

df[2]=

   Date       High   Low 
   01/01/2020   45    42
   01/03/2020   45    40
   ...

df[3]=

Date         Rate2
01/01/2020    5 
01/03/2020    6

我想在日期合并所有这些数据框,所以它看起来像这样:

newdateframe=

Date          StockPrice     Rate    High   Low    Rate 2
01/02/2020     34.2          4       45     42     5
01/02/2020     35            5       NA     NA     NA
01/03/2020     36            5       45     40     6

我尝试这样做: pd.concat(df.values(), ignore_index=True) 但这不起作用,因为它只是将每个数据框并排放置,甚至没有捕获我所有的日期。我的字典有超过 10 个数据框,所以我不想一个一个地进行合并,我宁愿做类似于上面的代码或循环的事情。

【问题讨论】:

    标签: python pandas dataframe dictionary


    【解决方案1】:

    试试:

    pd.concat([d.set_index('Date') for d in df.values()], axis=1)
    

    输出:

                StockPrice  Rate  High   Low  Rate2
    01/01/2020        34.2     4  45.0  42.0    5.0
    01/02/2020        35.0     5   NaN   NaN    NaN
    01/03/2020        36.0     5  45.0  40.0    6.0
    

    【讨论】:

    • 02/02/2016 到 -01/02/2020 然后又从 2016 年开始
    • 它适用于示例数据,请参阅包含的输出。你是什​​么意思它没有捕获所有数据?
    • 有没有办法组织它,以便按顺序捕获日期
    • dates in order是什么意思?
    • 所以我的输出例如是从 01/01/2020 到 06/04/2020 然后在 01/01/2020 再次开始一些数据,你知道为什么正在这样做
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 2020-02-24
    • 1970-01-01
    • 2019-06-25
    • 2021-03-11
    • 2020-11-04
    • 2022-08-05
    • 2018-02-17
    相关资源
    最近更新 更多