如何从 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']
希望我正确理解您的问题,希望此解决方案能解决您的问题。
我有两个数据集,其中都有如下数据:
数据集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']
希望我正确理解您的问题,希望此解决方案能解决您的问题。