我有四个数据帧,我必须将它们合并为一个。数据代表了2011年至2014年智利的人口普查信息。关键是数据帧实际上表示相同的信息,但有一些差异(至少对我而言)使合并过程有些复杂。我的代码如下:
import numpy as numpy
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sn
col_2011=['region','death_code','death_cause','sex','< 1','1 a 4','5 a 9','10 a 19','20 a 44','45 a 64','65 a 79','80 y mas']
col_2012=['region','death_code','death_cause','sex','< 1','1 a 4','5 a 9','10 a 19','20 a 44','45 a 64','65 a 79','80 y mas']
col_2013=['region','death_code','death_cause','sex','0 a 4','5 a 9','10 a 14','15 a 19','20 a 24','25 a 29','30 a 34','35 a 39','40 a 44','45 a 49','50 a 54','55 a 59','60 a 64','65 a 69','70 a 74','75 a 79','80 y mas']
col_2014=['region','death_code','sex','0 a 4','5 a 9','10 a 14','15 a 19','20 a 24','25 a 29','30 a 34','35 a 39','40 a 44','45 a 49','50 a 54','55 a 59','60 a 64','65 a 69','70 a 74','75 a 79','80 y mas','Indeter']
data_2011 = pd.read_csv("2011.csv",header=0,names=col_2011)
data_2012 = pd.read_csv("2012.csv",header=0,names=col_2012)
data_2013 = pd.read_csv("2013.csv",header=0,names=col_2013)
data_2014 = pd.read_csv("2014.csv",header=0,names=col_2014)
如您所见,数据显示了每个人口普查中登记的地区,死亡代码,死亡原因和年龄范围。这是我的数据帧(前5行)
CENSO 2011 ---------------------------------------------------------------------------------------
region death_code death_cause sex < 1 1 a 4 5 a 9 10 a 19 20 a 44 45 a 64 65 a 79 80 y mas
0 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Hombre 0 0 0 0 4 7 3 1
1 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Mujer 0 0 0 0 4 3 3 5
2 De Arica y Parinacota C00-D48 Tumores (neoplasias) Hombre 0 0 0 0 9 41 67 41
3 De Arica y Parinacota C00-D48 Tumores (neoplasias) Mujer 0 0 0 1 8 35 41 29
4 De Arica y Parinacota E00-E90 Enfermedades endocrinas, nutricionales y meta... Hombre 0 0 0 0 2 8 13 15
CENSO 2012 ---------------------------------------------------------------------------------------
region death_code death_cause sex < 1 1 a 4 5 a 9 10 a 19 20 a 44 45 a 64 65 a 79 80 y mas
0 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Hombre 0 0 0 0 5 3 4 3
1 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Mujer 1 0 0 0 1 7 2 3
2 De Arica y Parinacota C00-D48 Tumores (neoplasias) Hombre 0 0 0 0 6 39 58 37
3 De Arica y Parinacota C00-D48 Tumores (neoplasias) Mujer 0 0 0 1 11 27 80 35
4 De Arica y Parinacota E00-E90 Enfermedades endocrinas, nutricionales y meta... Hombre 0 0 0 0 0 11 20 6
CENSO 2013 ---------------------------------------------------------------------------------------
region death_code death_cause sex 0 a 4 ... 60 a 64 65 a 69 70 a 74 75 a 79 80 y mas
0 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Hombres 1 ... 1 1 2 2 9
1 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Mujeres 1 ... 0 1 2 1 5
2 De Arica y Parinacota A00-B99 Ciertas enfermedades infecciosas y parasitarias Indeterminado 0 ... 0 0 0 0 0
3 De Arica y Parinacota C00-D48 Tumores (neoplasias) Hombres 0 ... 16 42 31 32 39
4 De Arica y Parinacota C00-D48 Tumores (neoplasias) Mujeres 0 ... 12 23 13 19 40
CENSO 2014 ---------------------------------------------------------------------------------------
region death_code sex 0 a 4 5 a 9 10 a 14 15 a 19 20 a 24 ... 50 a 54 55 a 59 60 a 64 65 a 69 70 a 74 75 a 79 80 y mas Indeter
0 De Arica y Parinacota A00-B99 Hombres 0 0 0 0 0 ... 2 2 2 0 1 1 4 0
1 De Arica y Parinacota A00-B99 Mujeres 1 0 0 0 0 ... 2 0 2 3 3 1 2 0
2 De Arica y Parinacota A00-B99 Indeterminado 0 0 0 0 0 ... 0 0 0 0 0 0 0 0
3 De Arica y Parinacota C00-D48 Hombres 0 0 0 1 0 ... 6 12 18 27 41 30 40 0
4 De Arica y Parinacota C00-D48 Mujeres 0 0 0 1 0 ... 14 15 13 10 26 33 43 0
重点是: 1.年龄范围在数据帧之间是不同的。 2.数据框census_2014的年龄范围是不确定的(无法知道年龄的人)。 3.数据框census_2014仅显示了death_code,但没有显示death_cause。
如何正确合并这些数据框并添加显示相应年份的列?我是熊猫和蟒蛇的新手。谢谢,谢谢,保重。