如何从 Python 中的 2 个数据集创建一个类别

How to Create One Category from 2 Datasets in Python

我有两个数据集,其中都有如下数据:

数据集1:

Country Year   Cause  Gender    Deaths
2090    2011    A000    1       70340
2090    2010    A001    2       53449
2090    2009    A002    1       1731
2090    2008    A003    2       1270
2090    2007    A004    1       148
2310    2011    A000    2       172
2310    2010    A001    1       24
2310    2009    A002    2       20
2310    2008    A003    1       27
2660    2013    A004    2       21
2660    2012    A005    1       88
2660    2011    A006    2       82

数据集2:

Country Year   Cause  Gender    Deaths
2090    1999    B529    1       557
2090    1995    A001    2       234
2090    1996    B535    1       29
2090    1997    A002    2       33
2090    1998    B546    1       3224
2090    1999    B556    2       850
2310    1995    B555    1       319
2310    1996    A003    2       143
2310    1997    B563    1       251
2310    1998    B573    2       117
2660    1997    B561    1       244
2660    1998    A002    2       115
2660    1999    A001    1       10
2660    2000    B569    2       2

我需要在死因列代码中创建类别。但是我需要通过分别使用来自两个数据集的这些组合原因来创建这个类别,例如

道路交通事故类别:来自数据集 1:A001、A003

道路交通事故类别:来自数据集 2:B569、B555

并且这两种情况的原因都必须包含在道路交通事故类别中。

它们必须包含在每个数据集(未组合)的每个类别中,例如:道路交通事故:A001、A003、B569、B555

这是因为比如说A001。在数据集 1 中,A001 表示车祸,但在数据集 2 中,A001 表示心脏病发作,我不希望心脏病发作出现在道路交通事故类别中。但是当类别由两个数据集(即道路交通事故:A001、A003、B569、B555)组成时,两个数据集中的 A001 都包含在道路交通事故类别中。

这个问题的目的是了解多年来不同类别的死亡人数有何不同 - 我不允许手动合并两个数据集,而不是 Python。我也不允许使用任何常见的软件包,例如 Pandas、Numpy 等

感谢您的帮助

所以我对你的问题的理解是(如果我错了请纠正我),你有两个数据集都有 "Cause" column/variable。但是两个数据集中这个"Cause"列的编码是不一样的。

在 Dataset1 中,也许编码表示:

Road Traffic Accidents Category: A001, A003
Heart Attack Category: C001, C002  #made up encoding

在 Dataset2 中,也许编码表示:

Road Traffic Accidents Category:  B569, B555
Heart Attack Category: A001
Hurricane Cause of Death Category: E941 # made up encoding

您想要的是创建一个一致的类别以引起适用于两个数据集的编码映射。

我个人认为 python 字典是完成此任务的正确数据结构。我假设您可以为两个数据集加载类别原因映射。

data1_cat_cause = {'Road Traffic Accidents': ['A001', 'A003'],
                   'Heart Attack': ['C001', 'C002']}
data2_cat_cause = {'Road Traffic Accidents': ['B569', 'B555'],
                   'Heart Attack': ['A001'], 
                   'Hurricane Cause of Death': ['E941']}

category_combined = set(data1_cat_cause.keys()) | set(data2_cat_cause.keys())
cat_cause_combined = {}
for category in category_combined:
    cat_cause_combined[category] = {'Dataset1':data1_cat_cause.get(category),'Dataset2':data2_cat_cause.get(category)}

这将产生存储在 "cat_cause_combined" 变量中的以下信息:

                          Dataset1 encoding       Dataset2 encoding
Road Traffic Accidents  :  ['A001', 'A003']       ['B569', 'B555']
Heart Attack            :  ['C001', 'C002']       ['A001']
Hurricane Cause of Death:   None                  ['E941']

希望我正确理解您的问题,希望此解决方案能解决您的问题。