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

2024-05-31 23:19:32 发布

您现在位置: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上。我也不允许使用任何常见的包装,如熊猫,Numpy等

谢谢你的帮助


Tags: 数据原因类别genderyearcountry道路cause
1条回答
网友
1楼 · 发布于 2024-05-31 23:19:32

所以我对你的问题的理解是(如果我错了请纠正我),你有两个数据集,它们都有一个“原因”列/变量。但这两个数据集中“原因”列的编码是不同的。你知道吗

在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\u cause\u combined”变量中的以下信息:

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

我希望我能正确理解你的问题,我希望这个解决方案能解决你的问题。你知道吗

相关问题 更多 >