所以我正在研究一个使用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...
答案 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