[英]Combine rows in Dataframe column based on condition
I have the excerpt of the following df
:我有以下
df
的摘录:
Causa de muerte Sexo Edad Periodo Total
39 001-102 I-XXII.Todas las causas Total Menos de 1 año 2018 1027
40 001-102 I-XXII.Todas las causas Total Menos de 1 año 2017 1092
41 001-102 I-XXII.Todas las causas Total Menos de 1 año 2016 1120
78 001-102 I-XXII.Todas las causas Total De 1 a 4 años 2018 240
79 001-102 I-XXII.Todas las causas Total De 1 a 4 años 2017 226
80 001-102 I-XXII.Todas las causas Total De 1 a 4 años 2016 248
Is there a way to combine/merge the rows where 'Edad' == 'Menos de 1 año' and 'Edad' == 'De 1 a 4 años' and rename the merged rows to 'De 0 a 4 años'.有没有办法组合/合并 'Edad' == 'Menos de 1 año' 和 'Edad' == 'De 1 a 4 años' 的行并将合并的行重命名为 'De 0 a 4 años'。 My goal is that the corresponding numbers in 'Total' add up:
我的目标是“总计”中的相应数字加起来:
Causa de muerte Sexo Edad Periodo Total
39 001-102 I-XXII.Todas las causas Total De 0 a 4 años 2018 1267
40 001-102 I-XXII.Todas las causas Total De 0 a 4 años 2017 1318
41 001-102 I-XXII.Todas las causas Total De 0 a 4 años 2016 1368
I'm assuming you'll do it with groupby, but I haven't figured out how.我假设你会用 groupby 来做,但我还没弄清楚怎么做。
Use Series.replace
with aggregate sum
:使用
Series.replace
和sum
:
df['Edad'] = df['Edad'].replace({'Menos de 1 año':'De 1 a 4 años'})
df = df.groupby(['Causa de muerte','Sexo','Edad','Periodo'], as_index=False)['Total'].sum()
print (df)
Causa de muerte Sexo Edad Periodo Total
0 001-102 I-XXII.Todas las causas Total De 1 a 4 años 2016 1368
1 001-102 I-XXII.Todas las causas Total De 1 a 4 años 2017 1318
2 001-102 I-XXII.Todas las causas Total De 1 a 4 años 2018 1267
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.