熊猫列名称分为两个级别

Abhishek Sengupta:

我的初始数据框: 初始DF

嗨,我正在做一个作业,在执行Dataframe融化操作,然后进行分组和计数之后,当我进行后续操作时,我发现了一些有趣的事情:

melted_df = df.melt(id_vars= 'cardio',value_vars=['cholesterol'     ,'gluc' ,   'smoke' ,   'alco' ,    'active' ,  'overweight'])


melted_df = pd.DataFrame(melted_df.groupby(['cardio' ,  'variable' ,    'value'])['value'].count())

完成此操作后,列分为两个级别,如下所示:

在此处输入图片说明

我只能重命名第一级名称,而不能重命名较低级的名称。

有人可以解释为什么有两个级别吗?

安德烈亚斯(Andreas):

您需要设置as_index参数。

pd.DataFrame(melted_df.groupby(['cardio' ,  'variable' ,    'value'], as_index=False)['value'].count())

发生问题是因为您将现有数据框作为数据放入新数据框:

您不这样做是有原因的吗?

melted_df = melted_df.groupby(['cardio' ,  'variable' ,    'value'], as_index=False)['value'].count()

根据您评论中的要求:

import pandas as pd
df = pd.read_csv(r"D:\test\medical_examination.csv")
df = df.melt(id_vars=['id', 'cardio'], value_vars=['cholesterol', 'gluc', 'smoke', 'alco', 'active'])
df = df.groupby(['cardio', 'variable', 'value'])['value'].agg(total=sum).reset_index()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章