将 3 个数据集合并在一起

Posted

技术标签:

【中文标题】将 3 个数据集合并在一起【英文标题】:Merging 3 datasets together 【发布时间】:2020-05-07 02:11:42 【问题描述】:

我需要将 3 个数据集 (csv.) 合并在一起以制作动态图表。 它们都以国家为列,以年份为行。

其他两个数据集看起来相同,除了一个是人口,另一个是收入。我试着环顾四周,看看我能找到什么来得到我想要的数据,但似乎找不到任何东西。

我尝试使用 pd.concat,但它只是一个接一个地列出,而不是在单独的列中。

合并所有 3 个数据集以准备使用 pd.concat 制作动态图 mc_data = pd.concat([df2, pop_data3, income_data3], sort = True)

任何形式的帮助将不胜感激

编辑:我按照建议使用了代码,但是我得到了一堆不应该存在的 NaN 值

mc_data = pd.concat([df2, pop_data3, income_data3], axis = 1, keys = ['df2', 'pop_data3', 'income_data3'])

EDIT2:当我在它们上运行 .info 和 .index 时,我得到了这些结果。可能与数据类型有关吗?还是列条目?

【问题讨论】:

【参考方案1】:

来自this answer:

您可以使用concat 来做到这一点(keys 参数将创建分层列索引):

pd.concat([df2, pop_data3, income_data3], axis=1, keys=['df2', 'pop_data3', 'income_data3'])

【讨论】:

这有效,但我现在有不应该存在的 NaN 值 这意味着数据集不包含那些年份的值。例如df2 没有年份 1970 -1974,income_data3 没有年份 2011-2015。 确实如此,当我在合并之前查看 df2 时,它具有 1970 年至 2015 年每年每个国家/地区的值 打印什么df2.info()df2.indexincome_data3.info()income_data3.index 我在原始问题的输出中添加了一个屏幕截图,它可能是影响它的数据类型吗?还是列?

以上是关于将 3 个数据集合并在一起的主要内容,如果未能解决你的问题,请参考以下文章

如何最好地将 NetCDF 文件集合重新分块到 Zarr 数据集

笔试题并查集实现

如何密集排列数据集

Java 2 个 List 集合数据求并补集操作

js 将一个集合中相同的数据合到一起存入另一个集合中

并查集的理解