合并两个Panda数据框,并保留原始值

时间:2020-10-30 00:26:22

标签: python pandas dataframe

所以我正在研究一个使用JHU CSSE实时COVID-19数据的项目。我目前有三个数据框,每个数据框代表已确诊病例,已恢复病例和已确诊死亡的时间序列。每个数据框都有包含以下信息的行:省/州,国家/地区,以及自数据记录开始以来每天的一列,其中的值是该数据集的运行总计(已确认,已恢复,或死亡。这是数据集的示例:

            Province/State       Country/Region       Lat        Long   1/22/20   ...   10/28/20 
                       NaN          Afghanistan  33.93911   67.709953         0            41145
                       NaN              Albania  41.15330   20.168300         0            20040    
                       NaN              Algeria  28.03390    1.659600         0            57026    
                       NaN              Andorra  42.50630    1.521800         0             4517    
                       NaN               Angola -11.20270   17.873900         0            10074    
                       NaN  Antigua and Barbuda  17.06080  -61.796400         0              124   
                       NaN            Argentina -38.41610  -63.616700         0          1130533    
                       NaN              Armenia  40.06910   45.038200         0            82651    
        Australian Capital            Australia -35.47350  149.012400         0              114              
           New South Wales            Australia -33.86880  151.209300         0             4411    

除了前两列相同之外,三个数据帧中的每个数据帧具有相同的行数和列数。

当前,如果我想获取特定国家在特定日期的确诊,康复和死亡人数,则需要转到每个数据框并查询该国家和日期。

为了合并表并节省内存和性能,我想以保留原始值的方式合并表。理想情况下,与其在三个不同的数据帧中查找相同的单元三个不同的时间,不如在一个数据帧中具有一个单元,它将为我提供所有三个值。因此,例如,如果我在X天查询美国,我会得到一个整数列表,例如[案件,死亡,康复]。有什么方法可以在Pandas中组合表格?

以下是拉动国家的一种方式:

State,Country,1/22/20,1/23/20m,etc.

New York, USA, [confirmed, deaths, recovered], [confirmed, deaths, recovered], etc...

1 个答案:

答案 0 :(得分:0)

如果要使用一个公共列合并两个数据框,则可以使用合并功能:

df = df1.merge(df2, on='column in common',how='left or right')

如果只想连接两个df,请使用concat:

df = pd.concat([df1,df2], axis=1) #axis=1 means merge their columns to merge. with rows use axis=0