我有两个数据集,其中包含数据如下:
数据集1:
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
数据集2:
{{1}}
我需要在原因列代码上创建用于死亡原因的类别。但我需要将这两个数据集中的这些组合原因单独使用,例如。
道路交通事故类别:来自数据集1:A001,A003
道路交通事故类别:来自数据集2:B569,B555
这两者的原因必须包含在道路交通事故类别中。
每个数据集(未合并)必须包含在每个类别中,例如:道路交通事故:A001,A003,B569,B555
这是因为例如A001。在数据集1中A001用于车祸,但在数据集2中A001表示心脏病发作,我不希望在道路交通事故类别中进行心脏病发作。但当类别来自两个数据集(即道路交通事故:A001,A003,B569,B555)时,两个数据集中的A001都包含在道路交通事故类别中。
这个问题的目的是看看多年来不同类别在死亡方面的差异 - 我不允许手动合并两个数据集而不是Python。我也不被允许使用任何常见的软件包,如Pandas,Numpy等。
感谢先进的帮助
答案 0 :(得分:0)
所以我对你的问题的理解是(如果我错了,请纠正我),你有两个数据集都有一个"原因"列/变量。但是这个"原因"的编码两个数据集中的列是不同的。
在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']
我希望我能正确理解你的问题,希望这个解决方案能解决你的问题。